软件破解教程 第三节 8088 汇编跳转
一、状态寄存器
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
|
有进位
|
JNS
|
79
|
S=0
|
正号
|
|
JNC
|
73
|
C=0
|
无进位
|
JO
|
70
|
O=1
|
有溢出
|
|
JZ/JE
|
74
|
Z=1
|
零/等于
|
JNO
|
71
|
O=0
|
无溢出
|
|
JNZ/JNE
|
75
|
Z=0
|
不为零/不等于
|
JP/JPE
|
7A
|
P=1
|
奇偶位为偶
|
|
JS
|
78
|
S=1
|
负号
|
JNP/IPO
|
7B
|
P=0
|
奇偶位为奇
|
三、间接标志转移(8位寻址)
|
指令格式
|
机器码
|
测试格式
|
如...则转移
|
|
JA/JNBE(比较无符号数)
|
77
|
C或Z=0
|
> 高于/不低于或等于
|
|
JAE/JNB(比较无符号数)
|
73
|
C=0
|
>= 高于或等于/不低于
|
|
JB/JNAE(比较无符号数)
|
72
|
C=1
|
< 低于/不高于或等于
|
|
JBE/JNA(比较无符号数)
|
76
|
C或Z=1
|
<= 低于或等于/不高于
|
|
JG/JNLE(比较带符号数)
|
7F
|
(S异或O)或Z=0
|
> 大于/不小于或等于
|
|
JGE/JNL(比较带符号数)
|
7D
|
S异或O=0
|
>= 大于或等于/不小于
|
|
JL/JNGE(比较带符号数)
|
7C
|
S异或O=1
|
< 小于/不大于或等于
|
|
JLE/JNG(比较带符号数)
|
7E
|
(S异或O)或Z=1
|
<= 小于或等于/不大于
|
|