老文章档案 · 2003 年

8088 汇编跳转

赢政天下 [WINZHENG.COM] · 网络学院 · 2003-06-12 · 作者:看雪 人气: · 出处:嬴政天下整理收藏)

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

<= 小于或等于/不大于

四、无条件转移指令(fisheep译 fisheep@sohu.com)

操作码

伪码指令

含义

EB cb

JMP rel8

相对短跳转(8位),使rel8处的代码位下一条指令

E9 cw

JMP rel16

相对跳转(16位),使rel16处的代码位下一条指令

FF /4

JMP r/m16

绝对跳转(16位),下一指令地址在r/m16中给出

FF /4

JMP r/m32

绝对跳转(32位),下一指令地址在r/m32中给出

EA cb

JMP ptr16:16

远距离绝对跳转, 下一指令地址在操作数中

EA cb

JMP ptr16:32

远距离绝对跳转, 下一指令地址在操作数中

FF /5

JMP m16:16

远距离绝对跳转, 下一指令地址在内存m16:16中

FF /5

JMP m16:32

远距离绝对跳转, 下一指令地址在内存m16:32中

五、16位/32位寻址方式(fisheep译 fisheep@sohu.com)

操作码

伪码指令

跳转含义

跳转类型

跳转的条件(标志位)

0F 87 cw/cd

JA rel16/32

大于

near

(CF=0 and ZF=0)

0F 83 cw/cd

JAE rel16/32

大于等于

near

(CF=0)

0F 82 cw/cd

JB rel16/32

小于

near

(CF=1)

0F 86 cw/cd

JBE rel16/32

小于等于

near

(CF=1 or ZF=1)

0F 82 cw/cd

JC rel16/32

进位

near

(CF=1)

0F 84 cw/cd

JE rel16/32

等于

near

(ZF=1)

0F 84 cw/cd

JZ rel16/32

为0

near

(ZF=1)

0F 8F cw/cd

JG rel16/32

大于

near

(ZF=0 and SF=OF)

0F 8D cw/cd

JGE rel16/32

大于等于

near

(SF=OF)

0F 8C cw/cd

JL rel16/32

小于

near

(SF<>OF)

0F 8E cw/cd

JLE rel16/32

小于等于

near

(ZF=1 or SF<>OF)

0F 86 cw/cd

JNA rel16/32

不大于

near

(CF=1 or ZF=1)

0F 82 cw/cd

JNAE rel16/32

不大于等于

near

(CF=1)

0F 83 cw/cd

JNB rel16/32

不小于

near

(CF=0)

0F 87 cw/cd

JNBE rel16/32

不小于等于

near

(CF=0 and ZF=0)

0F 83 cw/cd

JNC rel16/32

不进位

near

(CF=0)

0F 85 cw/cd

JNE rel16/32

不等于

near

(ZF=0)

0F 8E cw/cd

JNG rel16/32

不大于

near

(ZF=1 or SF<>OF)

0F 8C cw/cd

JNGE rel16/32

不大于等于

near

(SF<>OF)

0F 8D cw/cd

JNL rel16/32

不小于

near

(SF=OF)

0F 8F cw/cd

JNLE rel16/32

不小于等于

near

(ZF=0 and SF=OF)

0F 81 cw/cd

JNO rel16/32

未溢出

near

(OF=0)

0F 8B cw/cd

JNP rel16/32

不是偶数

near

(PF=0)

0F 89 cw/cd

JNS rel16/32

非负数

near

(SF=0)

0F 85 cw/cd

JNZ rel16/32

非零(不等于)

near

(ZF=0)

0F 80 cw/cd

JO rel16/32

溢出

near

(OF=1)

0F 8A cw/cd

JP rel16/32

偶数

near

(PF=1)

0F 8A cw/cd

JPE rel16/32

偶数

near

(PF=1)

0F 8B cw/cd

JPO rel16/32

奇数

near

(PF=0)

0F 88 cw/cd

JS rel16/32

负数

near

(SF=1)

0F 84 cw/cd

JZ rel16/32

为零(等于)

near

(ZF=1)

注:一些指令操作数的含义说明:

rel8 表示 8 位相对地址

rel16 表示 16 位相对地址

rel16/32 表示 16或32 位相对地址

r/m16 表示16位寄存器

r/m32 表示32位寄存器 (出处:嬴政天下整理收藏)

相关文章:

·5StarZip 2001 破解--初学者破解入门

相关软件:

→ 特别推荐

→ 热点TOP10

关于我们 |

帮助(?)

| 广告服务 |

版权声明 |

商业合作 |

发展历程 |

加盟我们 |

联系我们

Copyright © 1999-2003

winzheng.com All Rights Reserved.

繁体版:由华琦数码技术提供

Powered

by:MeSky.Net

2003-2004 年,宽带刚刚普及,下载站的文章区是许多人学电脑的第一课堂。
🕰 → 🤖 从那时到现在

当年一篇教程能让一台电脑焕然一新;今天的效率工具换成了 AI。 想知道当下最可靠的 AI 模型怎么选?看 赢政指数——我们用了 28 年的选软件严谨,现在用来评测大模型。

档案性质声明:本页为赢政天下(1998-2011)老文章的历史档案复原, 内容反映当年发表时的原貌——包括当年的技术表述、软件版本与观点,部分方法在今天已不适用或不合规,仅作互联网历史记录与研究用途, 不提供任何形式的下载。原始数据经由公共网络存档(Internet Archive)复原。发现问题请联系我们
← 返回老文章档案 · 软件史档案馆 · 赢政天下站史