现在的位置: 首页 > 综合 > 正文

状态寄存器介绍与汇编跳转指令集锦

2013年10月10日 ⁄ 综合 ⁄ 共 2065字 ⁄ 字号 评论关闭

一、状态寄存器

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                  <=/

抱歉!评论已关闭.