一、状态寄存器
PSW(Program Flag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示:
1514131211109876543210 OFDFIFTFSFZF AF PF CF
条件码:
①OF(Overflow Flag)溢出标志。溢出时为1,否则置0。
②SF(Sign Flag)符号标志。结果为负时置1,否则置0.
③ZF(Zero Flag)零标志,运算结果为0时ZF位置1,否则置0.
④CF(Carry Flag)进位标志,进位时置1,否则置0.
⑤AF(Auxiliary carry Flag)辅助进位标志,记录运算时第3位(半个字节)产生的进位置。有进位时1,否则置0.
⑥PF(Parity Flag)奇偶标志。结果操作数中1的个数为偶数时置1,否则置0.
控制标志位:
⑦DF(Direction Flag)方向标志,在串处理指令中控制信息的方向。
⑧IF(Interrupt Flag)中断标志。
⑨TF(Trap Flag)陷井标志。
二、 直接标志转移(8位寻址)
指令格式 机器码 测试条件 如...则转移
JC 72 C=1 有进位
JNC 73 C=0 无进位
JZ/JE 74 Z=1 零/
JNZ/JNE 75 Z=0 不为零/
JS 78 S=1 负号
JNS 79 S=0 正号
JO 70 O=1 有溢出
JNO 71 O=0 无溢出
JP/JPE 7A P=1 奇偶位为偶
JNP/IPO 7B P=0 奇偶位为奇
三、间接标志转移(8位寻址)
先用cmp指令比较再用下面的判断(少了一个 JE 为等于):
指令格式 机器码 测试格式 如...则转移
JA/JNBE() 77 CZ=0 >/
JAE/JNB() 73 C=0 >=/
JB/JNAE() 72 C=1 </
JBE/JNA() 76 CZ=1 <=/
JG/JNLE() 7F (SO)Z=0 >/
JGE/JNL() 7D SO=0 >=/
JL/JNGE() 7C SO=1 </
JLE/JNG() 7E (SO)Z=1 <=/