通用寄存器的特殊用途和隐含性质寄存器特殊用途隐含性质名不能隐含在输入输出指令中作数据寄存器用AX, AL隐含在乘法指令中存放被乘数或乘积,在除法指令中存放被除数或商隐含AH在LAHF指令中,作目标寄存器用隐含在十进制运算指令中作累加器用AL隐含在XLAT指令中作累加器用不能隐含在间接寻址中作基址寄存器用BX隐含在XLAT指令中作基址寄存器用CX隐含在串操作指令和LOOP指令中作计数器用CL不能隐含在移位/循环移位指令中作移位次数计数器用隐含在字乘法/除法指令中存放乘积高位或被除数高位或余数DX在间接寻址的输入输出指令中作地址寄存器用不能隐含隐息含在字符串运算指令中作源变址寄存器用SI在间接寻址中作变址寄存器用不能隐含隐含在字符串运算指令中作目标变址寄存器用DI在间接寻址中作变址寄存器用不能隐含BP在间接寻址中作基址指针用不能隐含隐含SP在堆栈操作中作堆栈指针用
通用寄存器的特殊用途和隐含性质 寄存器 名 特殊用途 隐含性质 在输入输出指令中作数据寄存器用 不能隐含 AX, AL 在乘法指令中存放被乘数或乘积,在除法指令中存放被除数或商 隐 含 AH 在LAHF指令中,作目标寄存器用 隐 含 在十进制运算指令中作累加器用 隐 含 AL 在XLAT指令中作累加器用 隐 含 在间接寻址中作基址寄存器用 不能隐含 BX 在XLAT指令中作基址寄存器用 隐 含 CX 在串操作指令和LOOP指令中作计数器用 隐 含 CL 在移位/循环移位指令中作移位次数计数器用 不能隐含 在字乘法/除法指令中存放乘积高位或被除数高位或余数 隐 含 DX 在间接寻址的输入输出指令中作地址寄存器用 不能隐含 在字符串运算指令中作源变址寄存器用 隐 含 S I 在间接寻址中作变址寄存器用 不能隐含 在字符串运算指令中作目标变址寄存器用 隐 含 DI 在间接寻址中作变址寄存器用 不能隐含 BP 在间接寻址中作基址指针用 不能隐含 S P 在堆栈操作中作堆栈指针用 隐 含
表(3.2)程序状态字(PSW)150SFPFCFOFDFTFZFAFI程序状态字(PSW)表(3.3)PSW中标志位的用法及含义标志位用法及含义方向控制(DirectionFlag)位。若设置DF=1,则串操作后,源和目的操作数DF的地址均向增址方向调整:若设置DF0,则向减址方向调整。中断允许控制(InterruptEnableFlag)位。若设置IF=1,则允许CPu响应可IF屏蔽中断(开中断),若IF=0,则不允许CPU响应可屏蔽中断(关中断)。陷井控制(TrapFlag)位。若设置TF=1,则将在CPU运行中设置陷井,此时,CPU每执行一条指令就产生一个单步中断,用户可以在中断服务中对当前指令TF的执行情况进行调试;若TF二0,表示不设置陷井。该标志主要用于程序的单步调试。溢出标志(OverflowFlag)位。它反映有符号数的运算结果是否超出其所能表示的范圈;字运算的范为-32768~+32767,字节运算的范围为-128~+127。若OFOF一1,则表示结果溢出;OF一0,表示结果未溢出。注意,OF标志主要针对有符号运算。符号标志(SignFlag)位。它反映运算结果的最高有效位(MSB)为0、还是为1:对有符号运算来说,它反映了运算结果为正、还是为负。若SF一1,反映运算SF结果的最高有效位为1(或结果为负):若SF=0,则表示最高有效位为0(或结果不为负)零标志(ZeroFlag)位。反映运算结果是否为全0。若ZF=1,则表示运算结ZF果为全0(各位均为0),若ZF=0,表示运算结果非全0(各位不全为0)。辅助标志(AuxiliaryFlag)位。该标志主要用于BCD码运算后的调整。它反AF映运算中低四位向前(即D3向D4)有无进位(针对加运算)或借位(针对减运算)。若AF=1,表示有进位或借位;若AF=0,表示无进位或借位。校验标志(ParityFlag)位。反映运算结果中1的个数是否为偶数。若PF1,PF表示运算结果中有偶数个1:若PF=0,表示结果中有奇数个1。进位标志(CarryFlag)位。它反映运算中最高有效位(字运算时为D15、字节运算时为D7位)向前有无进位(针对加运算)或借位(针对减运算)。若CFCF1,表示有进位或借位;若CF=0,表示无进位或借位。CF标志主要针对无符号运算
程 序 状 态 字 (PSW ) 表 (3.2 PSW) 15 0 OF DF I F TF SF ZF AF PF CF 表 (3.3 PSW 中标志位的用法及含义 标志位 用法及含义 DF 方向控制(Direction Flag)位。若设置DF=1,则串操作后,源和目的操作数 的地址均向增址方向调整;若设置DF=0,则向减址方向调整。 I F 中断允许控制(Interrupt Enable Flag)位。若设置IF=1,则允许CPU响应可 屏蔽中断(开中断);若I F=0,则不允许CPU响应可屏蔽中断(关中断)。 TF 陷井控制(Trap Flag)位。若设置TF=1,则将在CPU运行中设置陷井,此 时,CPU每执行一条指令就产生一个单步中断,用户可以在中断服务中对当前指令 的执行情况进行调试;若TF=0,表示不设置陷井。该标志主要用于程序的单步调 试 。 OF 溢出标志(Overflow Flag)位。它反映有符号数的运算结果是否超出其所能表 示的范围;字运算的范围为-32768~+32767,字节运算的范围为-128~+127。若OF =1,则表示结果溢出;OF=0,表示结果未溢出。注意,OF标志主要针对有符号 运算。 SF 符号标志(Sign Flag)位。它反映运算结果的最高有效位(MSB)为0、还是 为1;对有符号运算来说,它反映了运算结果为正、还是为负。若SF=1,反映运算 结果的最高有效位为1(或结果为负);若SF=0,则表示最高有效位为0(或结果 不为负)。 ZF 零标志(Zero Flag)位。反映运算结果是否为全0。若ZF=1,则表示运算结 果为全0(各位均为0);若ZF=0,表示运算结果非全0(各位不全为0) 。 AF 辅助标志(Auxiliary Flag)位。该标志主要用于BCD码运算后的调整。它反 映运算中低四位向前(即D3向D4)有无进位(针对加运算)或借位(针对减运 算)。若AF=1,表示有进位或借位;若AF=0,表示无进位或借位。 PF 校验标志(Parity Flag)位。反映运算结果中1的个数是否为偶数。若PF=1, 表示运算结果中有偶数个1; 若PF=0,表示结果中有奇数个1。 CF 进位标志(Carry Flag)位。它反映运算中最高有效位(字运算时为D15、字 节运算时为D7位)向前有无进位(针对加运算)或借位(针对减运算)。若CF= 1,表示有进位或借位;若CF=0,表示无进位或借位。CF标志主要针对无符号运 算