Intel8086ASMCode汇编指令的机器码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8086指令码汇总表
8086指令有汇编语言指令和指令码两种形式,汇编语言指令形式经过汇编程序处理后生成指令码形式。
通过指令码形式可帮助理解汇编语言指令格式的含义和用法。
O、8086指令码格式
0B/1B 1B或2B 0B/1B 0B/1B/2B/4B 0B/1B/2B/4B 指令前缀操作码段寻址方式段偏移量参数立即数参数说明:偏移量参数和立即数参数的有无由寻址方式段决定。
一、传送类指令
MOV指令
REG/MEM→/←REG 100010dw mod reg r/m
IMME→REG/MEM 1000111w mod 000 r/m data data if w=1 IMME→REG 1011wreg data data if w=1
MEM→AX 1010000w addr-low addr-high
AX→MEM 1010001w addr-low addr-high
REG/MEM→段REG 10001110 mod reg r/m 8E
段REG→REG/MEM 10001100 mod reg r/m 8C
PUSH指令
REG/MEM 11111111 mod 110 r/m FF
REG 01010reg
段REG 000reg110
POP指令
REG/MEM 10001111 mod 000 r/m 8F
REG 01011reg
段REG 000reg111
XCHG指令
REG/MEM←→REG 1000011w mod reg r/m
REG←→AX 10010reg
XLAT指令11010111 D7
LEA指令10001101 mod reg r/m 8D
LDS指令11000101 mod reg r/m C5
LES指令11000100 mod reg r/m C4
LAHF指令10011111 9F
SAHF指令10011110 9E
PUSHF指令10011100 9C
POPF指令10011101 9D
IN指令
直接寻址1110010w port
间接寻址1110110w
OUT指令
直接寻址1110011w port
间接寻址1110111w
CBW指令10011000 98
CWD指令10011001 99 说明:d—0/1表示REG为源/目的操作数;
w—0/1表示操作数类型为BYTE/WORD;
mod、r/m—寻址方式,参见教材P56~57;
IMME—立即数操作数,字段中用data表示;
reg—通用REG用3位编码,段REG只用2位编码(即为0xx)。
二、算术运算类指令
ADD指令
REG/MEM+REG→任一000000dw mod reg r/m
REG/MEM += IMME 100000sw mod 000 r/m data data if sw=01 AX += IMME 0000010w data data if w=1
ADC指令
REG/MEM+REG→任一000100dw mod reg r/m
REG/MEM += IMME 100000sw mod 010 r/m data data if sw=01 AX += IMME 0001010w data data if w=1
INC指令
REG/MEM 1111111w mod 000 r/m
REG 01000reg
SUB指令
REG/MEM-REG→任一001010dw mod reg r/m
REG/MEM -= IMME 100000sw mod 101 r/m data data if sw=01 AX -= IMME 0010110w data data if w=1
SBB指令
REG/MEM-REG→任一000110dw mod reg r/m
REG/MEM -= IMME 100000sw mod 011 r/m data data if sw=01 AX -= IMME 0001110w data data if w=1
DEC指令
REG/MEM 1111111w mod 001 r/m
REG 01001reg
NEG指令1111011w mod 011 r/m
CMP指令
REG/MEM-REG 001110dw mod reg r/m
REG/MEM-IMME 100000sw mod 111 r/m data data if sw=01 AX-IMME 0011110w data data if w=1
MUL指令1111011w mod 100 r/m
IMUL指令1111011w mod 101 r/m
DIV指令1111011w mod 110 r/m
IDIV指令1111011w mod 111 r/m
AAA指令00110111 37
DAA指令00100111 27
AAS指令00111111 3F
DAS指令00101111 2F
AAM指令11010100 00001010 0A D4
AAD指令11010101 00001010 0A D5 说明:sw--01表示16位立即数,11表示8位立即数操作时扩展成16位;
REG/MEM-REG—MEM可为减数或被减数。
三、逻辑运算类指令
NOT指令1111011w mod 010 r/m
AND指令
REG/MEM®→任一001000dw mod reg r/m
REG/MEM &= IMME 1000000w mod 100 r/m data data if w=1 AX &= IMME 0010010w data data if w=1
OR指令
REG/MEM|REG→任一000010dw mod reg r/m
REG/MEM |= IMME 1000000w mod 001 r/m data data if w=1 AX |= IMME 0000110w data data if w=1
XOR指令
REG/MEM^REG→任一001100dw mod reg r/m
REG/MEM ^= IMME 1000000w mod 110 r/m data data if w=1 AX ^= IMME 0011010w data data if w=1
TEST指令
REG/MEM® 100010dw mod reg r/m
REG/MEM&IMME 1111011w mod 000 r/m data data if w=1 AX&IMME 1010110w data data if w=1
SHL/SAL指令110100vw mod 100 r/m
SHR指令110100vw mod 101 r/m
SAR指令110100vw mod 111 r/m
ROL指令110100vw mod 000 r/m
ROR指令110100vw mod 001 r/m
RCL指令110100vw mod 010 r/m
RCR指令110100vw mod 011 r/m
说明:v—0/1表示移位次数为1/(CL)。