汇编——寄存器及其使用

1.通用寄存器(隐含指隐含寻找??)

-》》数据寄存器:

AX accumulator AH--AL累加器

AX,AL在输入输出指令中用作数据寄存器(不可隐含)。在乘法指令中存放被乘数或乘积。在除法指令在存放被除数或商。  AL:在十进制运算指令中做累加器,在XLAT指令(汇编语言查表指令)中做累加器。  AH,在LAHF指令(标志读写指令。)中,用作目标寄存器

BX base       BH--BL基址寄存器

BX  在间接寻址中作基址寄存器用(不能隐含)。在XLAT指令中作基址寄存器用。

CX count      CH--CL计数器

CX (在串指令和loop指令中作计数器用)(常用) CL:在移位/循环移位指令中作移位次数计数器(不能隐含)

DX data        DH--DL数据寄存器

DX  在字乘法、除法指令中存放乘积高位或被除数高位或余数。 在间接寻址的输入输出指令中作地址寄存器用。(不能隐含)

-》》指针或变址寄存器(16位)

SP stack pointer  堆栈指示器

在堆栈操作中用作堆栈指针

BP base pointer  基址指示器

在间接寻址在用作基址指针(不能隐含)

SI source index  源变址器

在字符串运算指令中作源变址寄存器用。  在间接寻址中作变址寄存器用。(不能隐含)

DI destination index  目的变址器

在字符串运算指令中作目标变址寄存器用。  在间接寻址中作变址寄存器用。(不能隐含)

-》》80X86的通用寄存器(32位)

EAX  ESI

EBX  EDI

ECX  EBP

EDX  ESP

需要注意的:16位只有SP、BP、SI、 DI、 BX五个寄存器可用于存放地址,而32位则8个都可以用于存放地址。


2.专用寄存器

IP(instruction pointer)指令指针寄存器

存放代码段中的偏移地址,始终指向下一条指令的首地址。

FLAGS(PSW program status word)程序状态字寄存器

1)条件码标志:(F:flag)

(OV/NV)OF溢出标志(overflow)(=1,溢出;=0,未溢出字节运算范围:-128~+127)

(NG negative=1/PL positive=0)SF符号标志(sign)(可反映正负,=1,最高有效位为1.=0,最高有效位为0)(重点!!)

(ZR/NZ)ZF零标志 (=1,各位全为0,or非全为0)

(CY/NC)CF进位标志(重点!!)(最高有效位向前有无进位or借位,主要针对无符号运算。=1有)

以下两种非重点:


(AC/NA)AF辅助进位标志。(辅助进位,针对bcd码运算,中低四位向前有无进位借位。)

(PE /PO odd)PF奇偶、校验标志(=1,结果有偶数个1.=0,有奇数个1)


2)控制标志:(DN/UP)DF 方向标志(=1,源和目的操作数地址均向减址方向调整。=0,增址方向)

3)系统标志位 TF陷阱标志。(=1,则将在CPU运行中设置陷阱,单步调试,CPU每执行一条指令,单步中断。)

IF中断标志(interrupt)(=1,运行CPU响应可屏蔽中断,=0,不允许)

IOPL I/O特权级(=1,开中断=0关中断)

3.端寄存器

CS (code segment)代码段

DS (data segment) 数据段

SS (stack segment)堆栈段

ES (extra segment) 附加段

FS                            附加的数据段

GS                       附加的数据段

你可能感兴趣的:(汇编——寄存器及其使用)