80x86 16bit架构中用了14个寄存器: ┏ 指令指针寄存器
AX BX CX DX SI DI SP BP IP CS SS DS ES PSW/FLAG
┗━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━┛ ┗━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━┛ 状态寄存器
通用寄存器 变址寄存器 指针寄存器 段寄存器 状态寄存器
AX (AH AL)累加寄存器
以下指令使用该寄存器:DIV MUL XLAT
BX (BH BL)基地址寄存器
该寄存器可用于内存寻址
以下指令使用该寄存器:XLAT
CX (CH CL)计数器寄存器
以下指令使用该寄存器:LOOP
DX (DH DL)数据寄存器
以下指令使用该寄存器:DIV(32) MUL(32) IDIV(32) IMUL(32) XLAT
SI 源变址寄存器
该寄存器用于内存寻址
以下指令使用该寄存器:MOVS STOS LODS CMPS SCAS
DI 目的变址寄存器
该寄存器用于内存寻址
以下指令使用该寄存器:MOVS STOS LODS CMPS SCAS
SP 堆栈指针寄存器
该寄存器用于内存寻址
以下指令使用该寄存器:PUSH/POP PUSHF/POPF PUSHA/POPA CALL/RET
BP 基指针寄存器
IP 指令指针寄存器
以下指令使用该寄存器:CALL/RET
CS 代码段寄存器
该寄存器用于内存寻址
以下指令使用该寄存器:CALL/RET
DS 数据段寄存器
该寄存器用于内存寻址
以下指令使用该寄存器:MOVS STOS LODS CMPS SCAS
SS 堆栈段寄存器
该寄存器用于内存寻址
以下指令使用该寄存器:MOVS STOS LODS CMPS SCAS
ES 附加段寄存器
该寄存器用于内存寻址
以下指令使用该寄存器:MOVS STOS LODS CMPS SCAS
PSW/FLAG 状态寄存器
以下指令影响该寄存器:LAHF/SAHF PUSHF/POPF ADD/SUB ADC/SBB INC/DEC NEG CMP MUL DIV IMUL IDIL AND/OR/XOR/TEST SHL/SAR SHL/SAR
以下指令影响 OF溢出标志:INC/DEC ADD/SUB ADC/SBB NEG CMP MUL IMUL
以下指令影响 SF符号标志:INC/DEC ADD/SUB ADC/SBB NEG CMP
以下指令影响 ZF零标志:INC/DEC ADD/SUB ADC/SBB NEG CMP
以下指令影响 CF进位/借位标志:MUL IMUL
以下指令影响 AF辅助进位标志:INC/DEC ADD/SUB ADC/SBB NEG CMP
以下指令影响 PF奇偶标志:INC/DEC ADD/SUB ADC/SBB NEG CMP
以下指令影响 整个标志寄存器:LAHF POPF DIV IDIV XADD
80x86 32bit架构中用了16个寄存器:
EAX EBX ECX EDX ESI EDI ESP EBP EIP CS SS DS ES FS GS EFLAG
┗━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━━━━━━┛ ┗━━━━━━━━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛ 状态寄存器
通用寄存器 变址寄存器 指针寄存器 段寄存器
各寄存器的作用与16位差不多
EAX (AH AL)累加寄存器
以下指令使用该寄存器:DIV MUL XLAT
EBX (BH BL)基地址寄存器
该寄存器可用于内存寻址
以下指令使用该寄存器:XLAT
ECX (CH CL)计数器寄存器
以下指令使用该寄存器:LOOP
EDX (DH DL)数据寄存器
以下指令使用该寄存器:DIV(32) MUL(32) IDIV(32) IMUL(32) XLAT
ESI 源变址寄存器
该寄存器用于内存寻址
以下指令使用该寄存器:MOVS STOS LODS CMPS SCAS
EDI 目的变址寄存器
该寄存器用于内存寻址