一、程序状态寄存器
PSW(Program Status Word)为程序状态寄存器,这是一个16位寄存器,由条件码标志(flag)和控制标志构成:
bit0:CF
bit2:PF
bit4:AF
bit6:ZF
bit7:SF
bit8:TF
bit9:IF
bit10:DF
bit11:OF
其中,条件码标志用来记录程序中运行结果状态信息.由于这些状态信息往往作为后继条件转移指令的转移控制条件,所以称为条件码.这包括以下6位:
OF(Overflow Flag)溢出标志,在运行过程中,如操作数超出了机器能表示的范围则称为溢出,此时OF位置1,否则置0.
SF(Sign Flag)符号标志,记录运算结果的符号,结果为负时置1,否则置0.
ZF(Zero Flag)零标志,运算结果为0时ZF位置1,否则置0.
CF(Carry Flag)进位标志,记录运算时从最高有效位产生的进位值.例如,执行加法指令时,最高有效位有进位时置1,否则置0.
AF(Auxiliary carry Flag)辅助进位标志,记录运算时第3位(半个字节)产生的进位值.例如,执行加法指令时第3位有进位时置1,否则置0.
PF(Parity Flag)奇偶标志,用来为机器中传送信息时可能产生的代码出错情况提供检验条件.当结果操作数中1的个数为偶数时置1,否则置0
控制标志位有三个:
DF(Direction Flag)方向标志,在串处理指令中控制处理信息的方向用。当DF位为1时,每次操作后使变址寄存器SI和DI减量,这样就使串处理从高地址向低地址方向处理。当DF为0时,则使SI和DI增量,使串处理从低地址向高地址处理。
IF(Interrupt Flag)中断标志,当IF为1时,允许中断,否则关闭中断
TF(Trap Flaga)陷井标志,用于单步方式操作。当TF位为1时,每条指令执行完后产生陷阱,由系统控制计算机;当TF位为0时,CPU正常工作不产生陷阱。
二、中断屏蔽寄存器
中断屏蔽寄存器的I/O端口地址是21H,它的8位对应8个外设。
bit0:定时器(IR0)
bit1:键盘(IR1)
bit2:保留(IR2)
bit3:串行通讯口(2)(IR3)
bit4:串行通讯口(1)(IR4)
bit5:硬盘(IR5)
bit6:软盘(IR6)
bit7:打印机(IR7)
通过设置这个寄存器的某位为1或为1允许或禁止某种外设的中断.某位为0表示允许某种外设中断请求,某位为1表示某种外设的中断请求被屏蔽(禁止).
例如,只允许键盘中断,可设置如下中断屏幕字:
MOV AL,11111101B
OUT 21H,AL
如果系统中要新增设键盘中断,则可用下列指令实现:
IN AL,21H
AND AL,11111101B
OUT 21H,AL
三、中断命令寄存器
bit0:L0
bit1:L1
bit2:L2
bit3,bit4:0
bit5:EOI
bit6:SL
bit7:R
中断命令寄存器的I/O端口地址为20H,它的各个控制位可动态地控制中断处理过程,其中L2-L0三位指定IR0-IR7中具有最低优先级的中断请求.位6(Set Level)和位7(Rotate)控制IR0-IR7的中断优先级的顺序.位5(EOI)是中断结束位.当EOI为1时,当前正在处理的中断请求就被清除,所以在中断处理完成后,必须中断结束位置于1,否则以后将屏蔽掉对同级中断或低级中断的处理.当然在必要的时候,在中断处理程序中也可以用EOI命令清除当前的中断请求,使得在中断处理的过程中又能响应同级或低级的中断.
结束外中断用下面的指令:
MOV AL,20H
OUT 20H,AL
在发出一个EOI命令时,位7和位6有四种组合,其含义如下:
R SL
0 0 正常优先级方式
0 1 清除由L2-L1指定的中断请求
1 0 各中断优先级依次左循环一个位置
1