一、寄存器的分类
1.8个通用寄存器(AX、BX、CX、DX、SP、BP、SI、DI)
2.4个段寄存器(CS、DS、ES、SS)
3.2个控制寄存器(IP、FLAGS)
二、通用寄存器
1.数据寄存器
AX(累加器)→AH+AL
BX(基址寄存器)→BH+BL
CX(计数寄存器)→CH+CL
DX(数据寄存器)→DH+DL
既可以作为16位寄存器使用,也可以作为8位寄存器使用,当BX寄存器作为8位寄存器时,分为BH和BL,BH为高8位,BL为低8位;AX、CX、DX同理。
2.地址指针寄存器
SP(堆栈指针寄存器)
BP(基址指针寄存器)
3.变址寄存器
SI(源变址寄存器)
DI(目标变址寄存器)
三、段寄存器
1.CS(代码段寄存器)
存放指令代码
2.DS(数据段寄存器)
存放操作的数据
3.ES(附加段寄存器)
存放操作的数据
4.SS(堆栈段寄存器)
存放暂时不用但需要保存的数据
四、控制寄存器
1.IP(指令指针寄存器)
2.FLAGS(标志寄存器)
6个状态标志位(CF、SF、AF、PF、OF、ZF)
CF(进位标志位)
当执行一个加法运算使最高位产生进位时,或者执行一个减法运算引起最高位产生借位时,此外,循环指令也会影响这一标志。
OF(溢出标志位)
运算过程中产生溢出时,所谓溢出,是指当字节运算的结果超出了范围-128~+127,或者当字运算的结果超出了范围-32768~+32767时称做溢出。
ZF(零标志位)
当前的运算结果为零,ZF=1。
SF(符号标志位)
与运算结果的最高位相同,当数据用补码表示时,负数的最高位为1,所以符号标志位表示运算执行后的结果是正数还是负数。
PF(奇偶标志位)
运算结果的低8为中所含的1的个数为偶数,PF=1。
AF(辅助进位标志位)
加法运算时,如果第三位往第四位有进位;减法运算时第三位向第四位有借位。辅助进位标志一般在BCD码运算中作为是否进行十进制调整的判断依据。
3个控制标志位(IF、TF、DF)
TF(陷阱标志位/跟踪标志)
TF=1,cpu按跟踪方式执行指令。
IF(中断允许标志位)
控制可屏蔽中断的标志IF=0。cpu不能对屏蔽中断请求做出响应IF=1;cpu可以接受可屏蔽中断请求。
DF(方向标志位)
控制串操作指令用的标志DF=0;串操作过程中的地址会不断增值DF=1;串操作过程中的地址会不断减值。