📄 586指令.txt
字号:
指令名称 指令形式 机器码 标志位
(设置/测试) 说 明 应用举例
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 设置 AF CF 加法后的ASCII码调整AL AAA
AAD AAD D5 0A 或 D5 ib 设置 SF ZF PF 除法前的ASCII码调整AX AAD
AAM AAM D4 0A 或 D4 ib 设置 PF SF ZF 乘法后的ASCII码调整AX AAM
AAS AAS 3F 设置 AF CF 减法后的ASCII码调整AL AAS
ADC ADC AL, imm8 14 ib 设置 AF CF OF SF PF ZF 带进位加法 ADC AL, 1F
ADC AX, imm16 15 iw ADC AX, 4F80
ADC EAX, imm32 15 id ADC EAX, 00004F80
ADC r/m8, imm8 80 /2 ib ADC BYTE Ptr [006387EA], 39
ADC r/m16,imm16 81 /2 iw ADC WORD Ptr [006387EA], 1039
ADC r/m32,imm32 81 /2 id ADC DWORD Ptr [006387EA], 00001039
ADC r/m16,imm8 83 /2 ib ADC WORD Ptr [006387EA], 39
ADC r/m32,imm8 83 /2 ib ADC DWORD Ptr [006387EA], 39
ADC r/m8,r8 10 /r ADC [006387EA], AL
ADC r/m16,r16 11 /r ADC [006387EA], AX
ADC r/m32,r32 11 / r ADC [006387EA], EAX
ADC r8,r/m8 12 /r ADC AL, [006387EA]
ADC r16,r/m16 13 /r ADC AX, [006387EA]
ADC r32,r/m32 13 /r ADC EAX, [006387EA]
ADD ADD AL, imm8 04 ib 设置 AF CF OF SF PF ZF 加法 ADD AL, 1F
ADD AX, imm16 05 iw ADD AX, 4F80
ADD EAX, imm32 05 id ADD EAX, 00004F80
ADD r/m8, imm8 80 /0 ib ADD BYTE Ptr [006387EA], 39
ADD r/m16,imm16 81 /0 iw ADD WORD Ptr [006387EA], 1039
ADD r/m32,imm32 81 /0 id ADD DWORD Ptr [006387EA], 00001039
ADD r/m16,imm8 83 /0 ib ADD WORD Ptr [006387EA], 39
ADD r/m32,imm8 83 /0 ib ADD DWORD Ptr [006387EA], 39
ADD r/m8,r8 00 /r ADD [006387EA], AL
ADD r/m16,r16 01 /r ADD [006387EA], AX
ADD r/m32,r32 01 / r ADD [006387EA], EAX
ADD r8,r/m8 02 /r ADD AL, [006387EA]
ADD r16,r/m16 03 /r ADD AX, [006387EA]
ADD r32,r/m32 03 /r ADD EAX, [006387EA]
AND AND AL, imm8 24 ib 设置 CF OF PF SF ZF 逻辑与 AND AL, 1F
AND AX, imm16 25 iw AND AX, 4F80
AND EAX, imm32 25 id AND EAX, 00004F80
AND r/m8, imm8 80 /4 ib AND BYTE Ptr [006387EA], 39
AND r/m16,imm16 81 /4 iw AND WORD Ptr [006387EA], 1039
AND r/m32,imm32 81 /4 id AND DWORD Ptr [006387EA], 00001039
AND r/m16,imm8 83 /4 ib AND WORD Ptr [006387EA], 39
AND r/m32,imm8 83 /4 ib AND DWORD Ptr [006387EA], 39
AND r/m8,r8 20 /r AND BYTE Ptr [006387EA], AL
AND r/m16,r16 21 /r AND WORD Ptr [006387EA], AX
AND r/m32,r32 21 /r AND DWORD Ptr [006387EA], EAX
AND r8,r/m8 22 /r AND AL, [006387EA]
AND r16,r/m16 23 /r AND AX, [006387EA]
AND r32,r/m32 23 /r AND EAX, [006387EA]
ARPL ARPL r/m16,r16 63 /r 设置 ZF 调整请求特权级 (286+ PM) ARPL AX, BX ;如果AX的RPL小于BX的RPL,则改为BX的RPL,且ZF置1,否则ZF清0
BOUND BOUND r16,m16&16 62 /r 不影响标志位 越界检查 (80188+) BOUND AX, [006387EA] ;如果AX不在[006387EA]及[006387EA+2]的值中间,则产生异常5
BOUND r32,m32&32 BOUND EAX, [006387EA] ;如果EAX不在[006387EA]及[006387EA+4]的值中间,则产生异常5
BSF BSF r16,r/m16 0F BC 设置 ZF 从低到高扫描目标,查找对应为1的位 (386+) BSF AX, BX ;把BX由低到高第一个1的位置送AX,如全0则ZF置1,否则ZF清0
BSF r32,r/m32 BSF EAX, EBX ;把EBX由低到高第一个1的位置送EAX,如全0则ZF置1,否则ZF清0
BSR BSR r16,r/m16 0F BD 设置 ZF 从高到低扫描目标,查找对应为1的位 (386+) BSR AX, BX ;把BX由高到低第一个1的位置送AX,如全0则ZF置1,否则ZF清0
BSR r32,r/m32 BSR EAX, EBX ;把EBX由高到低第一个1的位置送EAX,如全0则ZF置1,否则ZF清0
BSWAP BSWAP reg32 0F C8+rd 不影响标志位 32位寄存器高低字节交换(486+) BSWAP EAX
BT BT r/m16,r16 0F A3 设置 CF 测试目标的指定位 (386+) BT AX, BX ;如果AX中BX指定的位为1,则CF置1,否则CF清0
BT r/m32,r32 0F A3 BT EAX, EBX ;如果EAX中EBX指定的位为1,则CF置1,否则CF清0
BT r/m16,imm8 0F BA /4 BT AX, 01 ;如果AX中01位为1,则CF置1,否则CF清0
BT r/m32,imm8 0F BA /4 BT EAX, 01 ;如果EAX中01位为1,则CF置1,否则CF清0
BTC BTC r/m16,r16 0F BB 设置 CF 将目标指定位取反 (386+) BTC AX, BX ;将AX中BX指定的位取反,CF存放指定位并取反位
BTC r/m32,r32 0F BB BTC EAX, EBX ;将EAX中EBX指定的位取反,CF存放指定位并取反
BTC r/m16,imm8 0F BA /7 BTC AX, 01 ;将AX中01位取反,CF存放指定位并取反
BTC r/m32,imm8 0F BA /7 BTC EAX, 01 ;将EAX中01位取反,CF存放指定位并取反
Btr Btr r/m16,r16 0F B3 设置 CF 将目标指定位清0 (386+) Btr AX, BX ;将AX中BX指定的位清0,CF存放指定位并清0
Btr r/m32,r32 0F B3 Btr EAX, EBX ;将EAX中EBX指定的位清0,CF存放指定位并清0
Btr r/m16,imm8 0F BA /6 Btr AX, 01 ;将AX中01位清0,CF存放指定位并清0
Btr r/m32,imm8 0F BA /6 Btr EAX, 01 ;将EAX中01位清0,CF存放指定位并清0
BTS BTS r/m16,r16 0F AB 设置 CF 将目标指定位置1 (386+) BTS AX, BX ;将AX中BX指定的位置1,CF存放指定位并置1
BTS r/m32,r32 0F AB BTS EAX, EBX ;将EAX中EBX指定的位置1,CF存放指定位并置1
BTS r/m16,imm8 0F BA /5 BTS AX, 01 ;将AX中01位置1,CF存放指定位并置1
BTS r/m32,imm8 0F BA /5 BTS EAX, 01 ;将EAX中01位置1,CF存放指定位并置1
CALL CALL rel16 E8 cw 不影响标志位 子程序调用(16位相对寻址)
CALL rel32 E8 cd 子程序调用(32位相对寻址)
CALL r/m16 FF /2 子程序调用(16位间接寻址)
CALL r/m32 FF /2 子程序调用(32位间接寻址)
CALL ptr16:16 9A cd 子程序调用(直接绝对寻址)
CALL ptr16:32 9A cp 子程序调用(直接绝对寻址)
CALL m16:16 FF /3 子程序调用(间接绝对寻址)
CALL m16: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 0F 06 不影响标志位 清除任务开关标志(TSF) CLTS
CMC CMC F5 设置 CF 进位标志取反 CMC
CMOVcc CMOVA r16, r/m16 0F 47 /r 高于(CF=0 and ZF=0) 条件传送指令 CMOVA AX, BX
CMOVA r32, r/m32 CMOVA EAX, EBX
CMOVAE r16, r/m16 0F 43 /r 高于等于(CF=0) CMOVAE AX, BX
CMOVAE r32, r/m32 CMOVAE EAX, EBX
CMOVB r16, r/m16 0F 42 /r 低于(CF=1) CMOVB AX, BX
CMOVB r32, r/m32 CMOVB EAX, EBX
CMOVBE r16, r/m16 0F 46 /r 低于等于(CF=1 or ZF=1) CMOVBE AX, BX
CMOVBE r32, r/m32 CMOVBE EAX, EBX
CMOVC r16, r/m16 0F 42 /r 有进位(CF=1) CMOVC AX, BX
CMOVC r32, r/m32 CMOVC EAX, EBX
CMOVE r16, r/m16 0F 44 /r 等于(ZF=1) CMOVE AX, BX
CMOVE r32, r/m32 CMOVE EAX, EBX
CMOVG r16, r/m16 0F 4F /r 大于(ZF=0 and SF=OF) CMOVG AX, BX
CMOVG r32, r/m32 CMOVG EAX, EBX
CMOVGE r16, r/m16 0F 4D /r 大于等于(SF=OF) CMOVGE AX, BX
CMOVGE r32, r/m32 CMOVGE EAX, EBX
CMOVL r16, r/m16 0F 4C /r 小于(SF<>OF) CMOVL AX, BX
CMOVL r32, r/m32 CMOVL EAX, EBX
CMOVLE r16, r/m16 0F 4E /r 小于等于(ZF=1 or SF<>OF) CMOVLE AX, BX
CMOVLE r32, r/m32 CMOVLE EAX, EBX
CMOVNA r16, r/m16 0F 46 /r 不高于(CF=1 or ZF=1) CMOVNA AX, BX
CMOVNA r32, r/m32 CMOVNA EAX, EBX
CMOVNAE r16, r/m16 0F 42 /r 不高等于(CF=1) CMOVNAE AX, BX
CMOVNAE r32, r/m32 CMOVNAE EAX, EBX
CMOVNB r16, r/m16 0F 43 /r 不低于(CF=0) CMOVNB AX, BX
CMOVNB r32, r/m32 CMOVNB EAX, EBX
CMOVNBE r16, r/m16 0F 47 /r 不低等于(CF=0 and ZF=0) CMOVNBE AX, BX
CMOVNBE r32, r/m32 CMOVNBE EAX, EBX
CMOVNC r16, r/m16 0F 43 /r 无进位(CF=0) CMOVNC AX, BX
CMOVNC r32, r/m32 CMOVNC EAX, EBX
CMOVNE r16, r/m16 0F 45 /r 不等于(ZF=0) CMOVNE AX, BX
CMOVNE r32, r/m32 CMOVNE EAX, EBX
CMOVNG r16, r/m16 0F 4E /r 不大于(ZF=1 or SF<>OF) CMOVNG AX, BX
CMOVNG r32, r/m32 CMOVNG EAX, EBX
CMOVNGE r16, r/m16 0F 4C /r 不大等于(SF<>OF) CMOVNGE AX, BX
CMOVNGE r32, r/m32 CMOVNGE EAX, EBX
CMOVNL r16, r/m16 0F 4D /r 不小于(SF=OF) CMOVNL AX, BX
CMOVNL r32, r/m32 CMOVNL EAX, EBX
CMOVNLE r16, r/m16 0F 4F /r 不小等于(ZF=0 and SF=OF) CMOVNLE AX, BX
CMOVNLE r32, r/m32 CMOVNLE EAX, EBX
CMOVNO r16, r/m16 0F 41 /r 无溢出(OF=0) CMOVNO AX, BX
CMOVNO r32, r/m32 CMOVNO EAX, EBX
CMOVNP r16, r/m16 0F 4B /r 非偶数(PF=0) CMOVNP AX, BX
CMOVNP r32, r/m32 CMOVNP EAX, EBX
CMOVNS r16, r/m16 0F 49 /r 非负数(SF=0) CMOVNS AX, BX
CMOVNS r32, r/m32 CMOVNS EAX, EBX
CMOVNZ r16, r/m16 0F 45 /r 非零(ZF=0) CMOVNZ AX, BX
CMOVNZ r32, r/m32 CMOVNZ EAX, EBX
CMOVO r16, r/m16 0F 40 /r 溢出(OF=1) CMOVO AX, BX
CMOVO r32, r/m32 CMOVO EAX, EBX
CMOVP r16, r/m16 0F 4A /r 偶数(PF=1) CMOVP AX, BX
CMOVP r32, r/m32 CMOVP EAX, EBX
CMOVPE r16, r/m16 0F 4A /r 偶数(PF=1) CMOVPE AX, BX
CMOVPE r32, r/m32 CMOVPE EAX, EBX
CMOVPO r16, r/m16 0F 4B /r 奇数(PF=0) CMOVPO AX, BX
CMOVPO r32, r/m32 CMOVPO EAX, EBX
CMOVS r16, r/m16 0F 48 /r 负数(SF=1) CMOVS AX, BX
CMOVS r32, r/m32 CMOVS EAX, EBX
CMOVZ r16, r/m16 0F 44 /r 为零(ZF=1) CMOVZ AX, BX
CMOVZ r32, r/m32 CMOVZ EAX, EBX
CMP CMP AL, imm8 3C ib 设置 AF CF OF PF SF ZF 比较大小,
然后设置标志位 CMP AL, 1F
CMP AX, imm16 3D iw CMP AX, 4F80
CMP EAX, imm32 3D id CMP EAX, 00004F80
CMP r/m8, imm8 80 /7 ib CMP BYTE Ptr [006387EA], 39
CMP r/m16,imm16 81 /7 iw CMP WORD Ptr [006387EA], 1039
CMP r/m32,imm32 81 /7 id CMP DWORD Ptr [006387EA], 00001039
CMP r/m16,imm8 83 /7 ib CMP WORD Ptr [006387EA], 39
CMP r/m32,imm8 83 /7 ib CMP DWORD Ptr [006387EA], 39
CMP r/m8,r8 38 /r CMP BYTE Ptr [006387EA], AL
CMP r/m16,r16 39 /r CMP WORD Ptr [006387EA], AX
CMP r/m32,r32 39 / r CMP DWORD Ptr [006387EA], EAX
CMP r8,r/m8 3A /r CMP AL, [006387EA]
CMP r16,r/m16 3B /r CMP AX, [006387EA]
CMP r32,r/m32 3B /r CMP EAX, [006387EA]
CMPS CMPS m8, m8 A6 设置 AF CF OF PF SF ZF 比较字符串,每次比较1个字节 CMPS StrING1, StrING2 ;源串DS:(E)SI,目的串:ES:(E)DI
CMPS m16, m16 A7 比较字符串,每次比较1个字 CMPS StrING1, StrING2 ;源串DS:(E)SI,目的串:ES:(E)DI
CMPS m32, m32 A7 比较字符串,每次比较1个双字 CMPS StrING1, 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 CMPXCHG r/m8,r8 0F B0 /r 设置 AF CF OF PF SF ZF 比较交换 (486+) CMPXCHG BL,CL ;如果AL与BL相等,则CL送BL且ZF置1;否则BL送CL,且ZF清0
CMPXCHG r/m16,r16 0F B1 /r CMPXCHG BX,CX ;如果AX与BX相等,则CX送BX且ZF置1;否则BX送CX,且ZF清0
CMPXCHG r/m32,r32 0F B1 /r CMPXCHG EBX,ECX ;如果EAX与EBX相等,则ECX送EBX且ZF置1;否则EBX送ECX,且ZF清0
CMPXCHG8B CMPXCHG8B m64 0F C7 /1 m64 设置 ZF 比较交换 (486+) CMPXCHG [ESI] ;比较EDX:EAX与64位的目标,如果相等则ECX:EBX送往目标且ZF置1,否则目标送EDX:EAX且ZF清0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -