80x86指令简表.docx

上传人:b****3 文档编号:10556073 上传时间:2023-05-26 格式:DOCX 页数:130 大小:40.94KB
下载 相关 举报
80x86指令简表.docx_第1页
第1页 / 共130页
80x86指令简表.docx_第2页
第2页 / 共130页
80x86指令简表.docx_第3页
第3页 / 共130页
80x86指令简表.docx_第4页
第4页 / 共130页
80x86指令简表.docx_第5页
第5页 / 共130页
80x86指令简表.docx_第6页
第6页 / 共130页
80x86指令简表.docx_第7页
第7页 / 共130页
80x86指令简表.docx_第8页
第8页 / 共130页
80x86指令简表.docx_第9页
第9页 / 共130页
80x86指令简表.docx_第10页
第10页 / 共130页
80x86指令简表.docx_第11页
第11页 / 共130页
80x86指令简表.docx_第12页
第12页 / 共130页
80x86指令简表.docx_第13页
第13页 / 共130页
80x86指令简表.docx_第14页
第14页 / 共130页
80x86指令简表.docx_第15页
第15页 / 共130页
80x86指令简表.docx_第16页
第16页 / 共130页
80x86指令简表.docx_第17页
第17页 / 共130页
80x86指令简表.docx_第18页
第18页 / 共130页
80x86指令简表.docx_第19页
第19页 / 共130页
80x86指令简表.docx_第20页
第20页 / 共130页
亲,该文档总共130页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

80x86指令简表.docx

《80x86指令简表.docx》由会员分享,可在线阅读,更多相关《80x86指令简表.docx(130页珍藏版)》请在冰点文库上搜索。

80x86指令简表.docx

80x86指令简表

指令名称

指令形式

机器码

标志位

(设置/测试)

说    明

应用举例

ES:

ES:

26

 

ES段跨越前缀

 

CS:

CS:

2E

 

CS段跨越前缀

 

SS:

SS:

36

 

SS段跨越前缀

 

DS:

DS:

3E

 

DS段跨越前缀

 

FS:

FS:

64

 

FS段跨越前缀

 

GS:

GS:

65

 

GS段跨越前缀

 

Opsize:

Opsize:

66

 

操作数类型跨越前缀

 

Address:

Address:

67

 

地址类型跨越前缀

 

AAA

AAA

37

设置AFCF

加法后的ASCII码调整AL

AAA

AAD

AAD

D50A或D5ib

设置SFZFPF

除法前的ASCII码调整AX

AAD

AAM

AAM

D40A或D4ib

设置PFSFZF

乘法后的ASCII码调整AX

AAM

AAS

AAS

3F

设置AFCF

减法后的ASCII码调整AL

AAS

ADC

ADCAL,imm8

14ib

设置AFCFOFSFPFZF

带进位加法

ADCAL,1F

ADCAX,imm16

15iw

ADCAX,4F80

ADCEAX,imm32

15id

ADCEAX,00004F80

ADCr/m8,imm8

80/2ib

ADCBYTEPtr[006387EA],39

ADCr/m16,imm16

81/2iw

ADCWORDPtr[006387EA],1039

ADCr/m32,imm32

81/2id

ADCDWORDPtr[006387EA],00001039

ADCr/m16,imm8

83/2ib

ADCWORDPtr[006387EA],39

ADCr/m32,imm8

83/2ib

ADCDWORDPtr[006387EA],39

ADCr/m8,r8

10/r

ADC[006387EA],AL

ADCr/m16,r16

11/r

ADC[006387EA],AX

ADCr/m32,r32

11/r

ADC[006387EA],EAX

ADCr8,r/m8

12/r

ADCAL,[006387EA]

ADCr16,r/m16

13/r

ADCAX,[006387EA]

ADCr32,r/m32

13/r

ADCEAX,[006387EA]

ADD

ADDAL,imm8

04ib

设置AFCFOFSFPFZF

加法

ADDAL,1F

ADDAX,imm16

05iw

ADDAX,4F80

ADDEAX,imm32

05id

ADDEAX,00004F80

ADDr/m8,imm8

80/0ib

ADDBYTEPtr[006387EA],39

ADDr/m16,imm16

81/0iw

ADDWORDPtr[006387EA],1039

ADDr/m32,imm32

81/0id

ADDDWORDPtr[006387EA],00001039

ADDr/m16,imm8

83/0ib

ADDWORDPtr[006387EA],39

ADDr/m32,imm8

83/0ib

ADDDWORDPtr[006387EA],39

ADDr/m8,r8

00/r

ADD[006387EA],AL

ADDr/m16,r16

01/r

ADD[006387EA],AX

ADDr/m32,r32

01/r

ADD[006387EA],EAX

ADDr8,r/m8

02/r

ADDAL,[006387EA]

ADDr16,r/m16

03/r

ADDAX,[006387EA]

ADDr32,r/m32

03/r

ADDEAX,[006387EA]

AND

ANDAL,imm8

24ib

设置CFOFPFSFZF

逻辑与

ANDAL,1F

ANDAX,imm16

25iw

ANDAX,4F80

ANDEAX,imm32

25id

ANDEAX,00004F80

ANDr/m8,imm8

80/4ib

ANDBYTEPtr[006387EA],39

ANDr/m16,imm16

81/4iw

ANDWORDPtr[006387EA],1039

ANDr/m32,imm32

81/4id

ANDDWORDPtr[006387EA],00001039

ANDr/m16,imm8

83/4ib

ANDWORDPtr[006387EA],39

ANDr/m32,imm8

83/4ib

ANDDWORDPtr[006387EA],39

ANDr/m8,r8

20/r

ANDBYTEPtr[006387EA],AL

ANDr/m16,r16

21/r

ANDWORDPtr[006387EA],AX

ANDr/m32,r32

21/r

ANDDWORDPtr[006387EA],EAX

ANDr8,r/m8

22/r

ANDAL,[006387EA]

ANDr16,r/m16

23/r

ANDAX,[006387EA]

ANDr32,r/m32

23/r

ANDEAX,[006387EA]

ARPL

ARPLr/m16,r16

63/r

设置ZF

调整请求特权级(286+PM)

ARPLAX,BX;如果AX的RPL小于BX的RPL,则改为BX的RPL,且ZF置1,否则ZF清0

BOUND

BOUNDr16,m16&16

62/r

不影响标志位

越界检查(80188+)

BOUNDAX,[006387EA];如果AX不在[006387EA]及[006387EA+2]的值中间,则产生异常5

BOUNDr32,m32&32

BOUNDEAX,[006387EA];如果EAX不在[006387EA]及[006387EA+4]的值中间,则产生异常5

BSF

BSFr16,r/m16

0FBC

设置ZF

从低到高扫描目标,查找对应为1的位(386+)

BSFAX,BX;把BX由低到高第一个1的位置送AX,如全0则ZF置1,否则ZF清0

BSFr32,r/m32

BSFEAX,EBX;把EBX由低到高第一个1的位置送EAX,如全0则ZF置1,否则ZF清0

BSR

BSRr16,r/m16

0FBD

设置ZF

从高到低扫描目标,查找对应为1的位(386+)

BSRAX,BX;把BX由高到低第一个1的位置送AX,如全0则ZF置1,否则ZF清0

BSRr32,r/m32

BSREAX,EBX;把EBX由高到低第一个1的位置送EAX,如全0则ZF置1,否则ZF清0

BSWAP

BSWAPreg32

0FC8+rd

不影响标志位

32位寄存器高低字节交换(486+)

BSWAPEAX

BT

BTr/m16,r16

0FA3

设置CF

测试目标的指定位(386+)

BTAX,BX;如果AX中BX指定的位为1,则CF置1,否则CF清0

BTr/m32,r32

0FA3

BTEAX,EBX;如果EAX中EBX指定的位为1,则CF置1,否则CF清0

BTr/m16,imm8

0FBA/4

BTAX,01;如果AX中01位为1,则CF置1,否则CF清0

BTr/m32,imm8

0FBA/4

BTEAX,01;如果EAX中01位为1,则CF置1,否则CF清0

BTC

BTCr/m16,r16

0FBB

设置CF

将目标指定位取反(386+)

BTCAX,BX;将AX中BX指定的位取反,CF存放指定位并取反位

BTCr/m32,r32

0FBB

BTCEAX,EBX;将EAX中EBX指定的位取反,CF存放指定位并取反

BTCr/m16,imm8

0FBA/7

BTCAX,01;将AX中01位取反,CF存放指定位并取反

BTCr/m32,imm8

0FBA/7

BTCEAX,01;将EAX中01位取反,CF存放指定位并取反

Btr

Btrr/m16,r16

0FB3

设置CF

将目标指定位清0(386+)

BtrAX,BX;将AX中BX指定的位清0,CF存放指定位并清0

Btrr/m32,r32

0FB3

BtrEAX,EBX;将EAX中EBX指定的位清0,CF存放指定位并清0

Btrr/m16,imm8

0FBA/6

BtrAX,01;将AX中01位清0,CF存放指定位并清0

Btrr/m32,imm8

0FBA/6

BtrEAX,01;将EAX中01位清0,CF存放指定位并清0

BTS

BTSr/m16,r16

0FAB

设置CF

将目标指定位置1(386+)

BTSAX,BX;将AX中BX指定的位置1,CF存放指定位并置1

BTSr/m32,r32

0FAB

BTSEAX,EBX;将EAX中EBX指定的位置1,CF存放指定位并置1

BTSr/m16,imm8

0FBA/5

BTSAX,01;将AX中01位置1,CF存放指定位并置1

BTSr/m32,imm8

0FBA/5

BTSEAX,01;将EAX中01位置1,CF存放指定位并置1

CALL

CALLrel16

E8cw

不影响标志位

子程序调用(16位相对寻址)

 

CALLrel32

E8cd

子程序调用(32位相对寻址)

 

CALLr/m16

FF/2

子程序调用(16位间接寻址)

 

CALLr/m32

FF/2

子程序调用(32位间接寻址)

 

CALLptr16:

16

9Acd

子程序调用(直接绝对寻址)

 

CALLptr16:

32

9Acp

子程序调用(直接绝对寻址)

 

CALLm16:

16

FF/3

子程序调用(间接绝对寻址)

 

CALLm16:

32

FF/3

子程序调用(间接绝对寻址)

 

CBW

CBW

98

不影响标志位

将AL值带符号扩展到AX

CBW

CDQ

CDQ

99

不影响标志位

将EAX值带符号扩展到EDX:

EAX

CDQ

CLD

CLD

FC

设置DF

清除方向位(DF)标志

CLD

CLI

CLI

FA

设置IF

清除中断允许位(IF)标志

CLD

CLTS

CLTS

0F06

不影响标志位

清除任务开关标志(TSF)

CLTS

CMC

CMC

F5

设置CF

进位标志取反

CMC

CMOVcc

CMOVAr16,r/m16

0F47/r

高于(CF=0andZF=0)

条件传送指令

CMOVAAX,BX

CMOVAr32,r/m32

CMOVAEAX,EBX

CMOVAEr16,r/m16

0F43/r

高于等于(CF=0)

CMOVAEAX,BX

CMOVAEr32,r/m32

CMOVAEEAX,EBX

CMOVBr16,r/m16

0F42/r

低于(CF=1)

CMOVBAX,BX

CMOVBr32,r/m32

CMOVBEAX,EBX

CMOVBEr16,r/m16

0F46/r

低于等于(CF=1orZF=1)

CMOVBEAX,BX

CMOVBEr32,r/m32

CMOVBEEAX,EBX

CMOVCr16,r/m16

0F42/r

有进位(CF=1)

CMOVCAX,BX

CMOVCr32,r/m32

CMOVCEAX,EBX

CMOVEr16,r/m16

0F44/r

等于(ZF=1)

CMOVEAX,BX

CMOVEr32,r/m32

CMOVEEAX,EBX

CMOVGr16,r/m16

0F4F/r

大于(ZF=0andSF=OF)

CMOVGAX,BX

CMOVGr32,r/m32

CMOVGEAX,EBX

CMOVGEr16,r/m16

0F4D/r

大于等于(SF=OF)

CMOVGEAX,BX

CMOVGEr32,r/m32

CMOVGEEAX,EBX

CMOVLr16,r/m16

0F4C/r

小于(SF<>OF)

CMOVLAX,BX

CMOVLr32,r/m32

CMOVLEAX,EBX

CMOVLEr16,r/m16

0F4E/r

小于等于(ZF=1orSF<>OF)

CMOVLEAX,BX

CMOVLEr32,r/m32

CMOVLEEAX,EBX

CMOVNAr16,r/m16

0F46/r

不高于(CF=1orZF=1)

CMOVNAAX,BX

CMOVNAr32,r/m32

CMOVNAEAX,EBX

CMOVNAEr16,r/m16

0F42/r

不高等于(CF=1)

CMOVNAEAX,BX

CMOVNAEr32,r/m32

CMOVNAEEAX,EBX

CMOVNBr16,r/m16

0F43/r

不低于(CF=0)

CMOVNBAX,BX

CMOVNBr32,r/m32

CMOVNBEAX,EBX

CMOVNBEr16,r/m16

0F47/r

不低等于(CF=0andZF=0)

CMOVNBEAX,BX

CMOVNBEr32,r/m32

CMOVNBEEAX,EBX

CMOVNCr16,r/m16

0F43/r

无进位(CF=0)

CMOVNCAX,BX

CMOVNCr32,r/m32

CMOVNCEAX,EBX

CMOVNEr16,r/m16

0F45/r

不等于(ZF=0)

CMOVNEAX,BX

CMOVNEr32,r/m32

CMOVNEEAX,EBX

CMOVNGr16,r/m16

0F4E/r

不大于(ZF=1orSF<>OF)

CMOVNGAX,BX

CMOVNGr32,r/m32

CMOVNGEAX,EBX

CMOVNGEr16,r/m16

0F4C/r

不大等于(SF<>OF)

CMOVNGEAX,BX

CMOVNGEr32,r/m32

CMOVNGEEAX,EBX

CMOVNLr16,r/m16

0F4D/r

不小于(SF=OF)

CMOVNLAX,BX

CMOVNLr32,r/m32

CMOVNLEAX,EBX

CMOVNLEr16,r/m16

0F4F/r

不小等于(ZF=0andSF=OF)

CMOVNLEAX,BX

CMOVNLEr32,r/m32

CMOVNLEEAX,EBX

CMOVNOr16,r/m16

0F41/r

无溢出(OF=0)

CMOVNOAX,BX

CMOVNOr32,r/m32

CMOVNOEAX,EBX

CMOVNPr16,r/m16

0F4B/r

非偶数(PF=0)

CMOVNPAX,BX

CMOVNPr32,r/m32

CMOVNPEAX,EBX

CMOVNSr16,r/m16

0F49/r

非负数(SF=0)

CMOVNSAX,BX

CMOVNSr32,r/m32

CMOVNSEAX,EBX

CMOVNZr16,r/m16

0F45/r

非零(ZF=0)

CMOVNZAX,BX

CMOVNZr32,r/m32

CMOVNZEAX,EBX

CMOVOr16,r/m16

0F40/r

溢出(OF=1)

CMOVOAX,BX

CMOVOr32,r/m32

CMOVOEAX,EBX

CMOVPr16,r/m16

0F4A/r

偶数(PF=1)

CMOVPAX,BX

CMOVPr32,r/m32

CMOVPEAX,EBX

CMOVPEr16,r/m16

0F4A/r

偶数(PF=1)

CMOVPEAX,BX

CMOVPEr32,r/m32

CMOVPEEAX,EBX

CMOVPOr16,r/m16

0F4B/r

奇数(PF=0)

CMOVPOAX,BX

CMOVPOr32,r/m32

CMOVPOEAX,EBX

CMOVSr16,r/m16

0F48/r

负数(SF=1)

CMOVSAX,BX

CMOVSr32,r/m32

CMOVSEAX,EBX

CMOVZr16,r/m16

0F44/r

为零(ZF=1)

CMOVZAX,BX

CMOVZr32,r/m32

CMOVZEAX,EBX

CMP

CMPAL,imm8

3Cib

设置AFCFOFPFSFZF

比较大小,

然后设置标志位

CMPAL,1F

CMPAX,imm16

3Diw

CMPAX,4F80

CMPEAX,imm32

3Did

CMPEAX,00004F80

CMPr/m8,imm8

80/7ib

CMPBYTEPtr[006387EA],39

CMPr/m16,imm16

81/7iw

CMPWORDPtr[006387EA],1039

CMPr/m32,imm32

81/7id

CMPDWORDPtr[006387EA],00001039

CMPr/m16,imm8

83/7ib

CMPWORDPtr[006387EA],39

CMPr/m32,imm8

83/7ib

CMPDWORDPtr[006387EA],39

CMPr/m8,r8

38/r

CMPBYTEPtr[006387EA],AL

CMPr/m16,r16

39/r

CMPWORDPtr[006387EA],AX

CMPr/m32,r32

39/r

CMPDWORDPtr[006387EA],EAX

CMPr8,r/m8

3A/r

CMPAL,[006387EA]

CMPr16,r/m16

3B/r

CMPAX,[006387EA]

CMPr32,r/m32

3B/r

CMPEAX,[006387EA]

CMPS

CMPSm8,m8

A6

设置AFCFOFPFSFZF

比较字符串,每次比较1个字节

CMPSStrING1,StrING2;源串DS:

(E)SI,目的串:

ES:

(E)DI

CMPSm16,m16

A7

比较字符串,每次比较1个字

CMPSStrING1,StrING2;源串DS:

(E)SI,目的串:

ES:

(E)DI

CMPSm32,m32

A7

比较字符串,每次比较1个双字

CMPSStrING1,StrING2;源串DS:

(E)SI,目的串:

ES:

(E)DI(386+)

CMPSB

A6

比较字符串,每次比较1个字节

CMPSB;源串DS:

(E)SI,目的串:

ES:

(E)DI

CMPSW

A7

比较字符串,每次比较1个字

CMPSW;源串DS:

(E)SI,目的串:

ES:

(E)DI

CMPSD

A7

比较字符串,每次比较1个双字

CMPSD;源串DS:

(E)SI,目的串:

ES:

(E)DI(386+)

CMPXCHG

CMPXCHGr/m8,r8

0FB0/r

设置AFCFOFPFSFZF

比较交换(486+)

CMPXCHGBL,CL;如果AL与BL相等,则CL送BL且ZF置1;否则BL送CL,且ZF清0

CMPXCHGr/m16,r16

0FB1/r

CMPXCHGBX,CX;如果AX与BX相等,则CX送BX且ZF置1;否则BX送CX,且ZF清0

CMPXCHGr/m32,r32

0FB1/r

CMPXCHGEBX,ECX;如果EAX与EBX相等,则ECX送EBX且ZF置1;否则EBX送ECX,且ZF清0

CMPXCHG8B

CMPXCHG8Bm64

0FC7/1m64

设置ZF

比较交换(486+)

CMPXCHG[ESI];比较EDX:

EAX与64位的目标,如果相等则ECX:

EBX送往目标且ZF置1,否则目标送EDX:

EAX且ZF清0

CPUID

CPUID

0FA2

不影响标志位

CPU标识送EAX、EBX、ECX、EDX

CPUID

CWD

CWD

99

不影响标志位

将AX带符号扩展到DX:

AX

CWD

CWDE

CWDE

98

不影响标志位

将AX带符号扩展到EAX

CWDE

DAA

DAA

27

设置AFCFPFSFZF

加法后的10进制调整AL

DAA

DAS

DAS

2F

设置AFCFPFSFZF

减法后的10进制调整AL

DAS

DEC

DECr/m8

FE/1

设置AFOFPFSFZF

目标减1

DECBYTEPtr[00458A90]

DECr/m16

FF/1

DECWORDPtr[00458A90]

DECr/m32

FF/1

DECDWORDPtr[00458A90]

DECr16

48+rw

DECAX

DECr32

48+rd

DECEAX

DIV

DIVr/m8

F6/6

AFCFOFPFSFZF未定义

无符号除法

DIVBL;AX除以BL,商在AL中,余数在AH中

DIVr/m16

F6/7

DIVBX;DX:

AX除以BX,商在AX中,余数在DX中

DIVr/m32

F6/7

DIV

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2