Chinaunix首页 | 论坛 | 博客
  • 博客访问: 61846
  • 博文数量: 19
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-12 11:10
个人简介

Stupid is as stupid does

文章分类

全部博文(19)

文章存档

2021年(1)

2017年(1)

2016年(17)

我的朋友

分类: LINUX

2016-07-22 15:21:31

一、状态寄存器

PSWProgram 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)零标志,运算结果为0ZF位置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

CZ=0

>  高于/不低于或等于

JAE/JNB(比较无符号数)

73

C=0

>=  高于或等于/不低于

JB/JNAE(比较无符号数)

72

C=1

<  低于/不高于或等于

JBE/JNA(比较无符号数)

76

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

<=  小于或等于/不大于

四、无条件转移指令

操作码

伪码指令

含义

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位寻址方式

操作码

伪码指令

跳转含义

跳转类型

跳转的条件(标志位)

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)

阅读(3127) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~