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、