Intel8086ASMCode汇编指令的机器码 下载本文

内容发布更新时间 : 2024/5/31 19:54:00星期一 下面是文章的全部内容请认真阅读。

8086指令码汇总表

8086指令有汇编语言指令和指令码两种形式,汇编语言指令形式经过汇编程序处理后生成指令码形式。

通过指令码形式可帮助理解汇编语言指令格式的含义和用法。

O、8086指令码格式

0B/1B 1B或2B 0B/1B 0B/1B/2B/4B 0B/1B/2B/4B 指令前缀 操作码段 寻址方式段 偏移量参数 立即数参数 说明:偏移量参数和立即数参数的有无由寻址方式段决定。

一、传送类指令

MOV指令 REG/MEM→/←REG IMME→REG/MEM IMME→REG MEM→AX AX→MEM REG/MEM→段REG 段REG→REG/MEM PUSH指令 REG/MEM REG 段REG POP指令 REG/MEM REG 段REG XCHG指令 REG/MEM←→REG REG←→AX XLAT指令 LEA指令 LDS指令 LES指令 LAHF指令 SAHF指令 PUSHF指令 POPF指令

100010dw 1000111w 1011wreg 1010000w 1010001w 10001110 10001100 mod reg r/m mod 000 r/m data addr-low addr-low mod reg r/m mod reg r/m data data if w=1 data if w=1 addr-high addr-high 8E 8C FF 8F D7 8D C5 C4 9F 9E 9C 9D 11111111 mod 110 r/m 01010reg 000reg110 10001111 mod 000 r/m 01011reg 000reg111 1000011w 10010reg 11010111 10001101 11000101 11000100 10011111 10011110 10011100 10011101 mod reg r/m mod reg r/m mod reg r/m mod reg r/m 1

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→任一 REG/MEM += IMME AX += IMME ADC指令 REG/MEM+REG→任一 REG/MEM += IMME AX += IMME INC指令 REG/MEM REG SUB指令 REG/MEM-REG→任一 REG/MEM -= IMME AX -= IMME SBB指令 REG/MEM-REG→任一 REG/MEM -= IMME AX -= IMME DEC指令 REG/MEM REG NEG指令 CMP指令 REG/MEM-REG REG/MEM-IMME AX-IMME

000000dw mod reg r/m 100000sw mod 000 r/m data data if sw=01 0000010w data data if w=1 000100dw mod reg r/m 100000sw mod 010 r/m data data if sw=01 0001010w data data if w=1 1111111w mod 000 r/m 01000reg 001010dw mod reg r/m 100000sw mod 101 r/m data data if sw=01 0010110w data data if w=1 000110dw mod reg r/m 100000sw mod 011 r/m data data if sw=01 0001110w data data if w=1 1111111w mod 001 r/m 01001reg 1111011w mod 011 r/m 001110dw mod reg r/m 100000sw mod 111 r/m data data if sw=01 0011110w data data if w=1 2

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 AX &= IMME 0010010w data OR指令 REG/MEM|REG→任一 000010dw mod reg r/m REG/MEM |= IMME 1000000w mod 001 r/m AX |= IMME 0000110w data XOR指令 REG/MEM^REG→任一 001100dw mod reg r/m REG/MEM ^= IMME 1000000w mod 110 r/m AX ^= IMME 0011010w data TEST指令 REG/MEM® 100010dw mod reg r/m REG/MEM&IMME 1111011w mod 000 r/m AX&IMME 1010110w data 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)。

3

data data if w=1 data if w=1 data data if w=1 data if w=1 data data if w=1 data if w=1 data data if w=1 data if w=1