内容发布更新时间 : 2024/12/23 4:15:10星期一 下面是文章的全部内容请认真阅读。
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