80x86指令简表.docx
- 文档编号:10556073
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:130
- 大小:40.94KB
80x86指令简表.docx
《80x86指令简表.docx》由会员分享,可在线阅读,更多相关《80x86指令简表.docx(130页珍藏版)》请在冰点文库上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 80 x86 指令 简表