8个通用寄存器
8个通用寄存器可以分为4个数据寄存器(AX,BX,CX,DX)和4个地址寄存器(SI,DI,SP,BP)
数据寄存器
数据寄存都能存储数据,但是往往还有一些其他的用法
AX(累加器):除了存储数据,乘法,除法只能在AX中完成
BX(基址寄存器):除了存储数据,经常还用作地址寄存器
CX(计数寄存器):除了存储数据,经常还用作循环计数,在循环中,默认CX的内容为循环次数
DX(数据寄存器):除了存储数据,在执行I/O端口指令时,DX表示端口地址
地址寄存器
地址寄存器提供的都是偏移地址,得到实际物理地址需要偏移地址与段地址进行混合运算,地址寄存器除了存储地址外,还具有一些其他特殊用途
SI(变址寄存器):在字符串操作中,SI提供源操作数的段内偏移地址
DI(变址寄存器):在字符串操作中,DI提供目的操作数的段内偏移地址
SP(堆栈指针寄存器):用于保存堆栈段的段内偏移地址,段地址由段寄存器SS提供
BP(基址指针寄存器):用于指定段内偏移地址,将BP用作地址寄存器时,一般情况下默认段地址是SS
4个段寄存器
CS(代码段寄存器):用于存放当前执行程序的段地址,IP为指令指针
DS(数据段寄存器):用于存放当前数据段的段地址
ES(附加段寄存器):用于存放当前附加数据段的段地址
SS(堆栈段寄存器):用于存放当前堆栈段的段地址
2个控制寄存器
IP(指令指针寄存器):也叫程序计数器(PC),保存的是下一条需要即将要执行指令的段内偏移地址,改变IP的值就改变了程序的流程。
PSW(程序状态字寄存器):16位寄存器,一共9个标志,其中6个标志用于反映ALU(算数逻辑运算单元)上一次的运算结果,其中3为用于控制CPU操作
结果状态标志位
(1)CF(进位标志):加减运算时,最高位(D7或者D15)有无进(借)位的标志,有置1
(2)PF(奇偶标志):操作结果中的低8位中含有1的个数,奇置1,偶置0
(3)AF(辅助进位标志):在加减运算中,D3位有无进(借)位的标志,有置1,无置0,BCD码运算常用
(4)ZF(零标志位):运算结果是否为0,为0置1,不为0置0
(5)SF(符号标志位):操作结果的符号,它等同于操作的最高位D7或D15,正置0,负置1
(6)OF(溢出标志位):有符号数运算时是否溢出,溢出置0,无溢出置1
控制CPU操作标志位
(7)DF(方向标志):在字符串操作中,DF为0时,变址寄存器(SI,DI)的内容自动递增,DF为0时自动变址寄存器自动递减,常用于字符串复制
(8)IF(中断允许标志):当IF置1时,CPU能够响应可屏蔽中断请求,当IF置0时,CPU不能响应中断请求
(9)TF(陷阱标志):当TF置1时,CPU处于单步调试执行方式,即每执行一条指令就自动执行一次类型中断。常用于代码调试