ZC_汇编跳转指令_01

ZC: 这个知识点需要整理一下

 

1、

比较指令:

指令

基于

描述

cmpb S2,S1

S1 – S2

比较字节,差关系

testb S2,S1

S1 & S2

测试字节,与关系

cmpw S2,S1

S1 – S2

比较字,差关系

testw S2,S1

S1 & S2

测试字,与关系

cmpl S2,S1

S1 – S2

比较双字,差关系

testl S2,S1

S1 & S2

测试双字,与关系

 

2、

一、状态寄存器
PSW(Program Flag)程序状态字寄存器,是一个16位寄存器,由条件码标志(flag)和控制标志构成,如下所示:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
        OF DF IF TF SF ZF   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 为等于):

指令格式  机器码  测试格式  如...则转移 
JE Z=1 ==
JNE Z=0 != 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 <=

 

4、

5、

 

posted @ 2016-06-06 13:22  DebugSkill  阅读(374)  评论(0编辑  收藏  举报