Intel8086指令码汇总表

更新时间:2024-01-10 18:34:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Intel8086指令码汇总表

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 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 CWD指令 10011001 说明: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 DAA指令 00100111 AAS指令 00111111 DAS指令 00101111 AAM指令 11010100 00001010 AAD指令 11010101 00001010 说明: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 四、控制转移类指令

JMP指令 直接短转移 11101011 段直接转移 11101001 内 间接转移 11111111 11101010 段直接转移 间 间接转移 11111111 JO指令 01110000 JNO指令 01110001 JC指令 01110010 JNC指令 01110011 JE/JZ指令 01110100 JNE/JNZ指令 01110101 JS指令 01111000 JNS指令 01111001 JP/JPE指令 01111010 JNP/JPO指令 01111011 JA/JNBE指令 01110111 JAE/JNB指令 01110011 JB/JNAE指令 01110010 JBE/JNA指令 01110110 JG/JNE指令 01111111 JGE/JNL指令 01111101 JL/JNGE指令 01111100 JLE/JNG指令 01111110 JCXZ指令 11100011 LOOP指令 11100010 LOOPZ/LOOPE指令 11100001 LOOPNZ/LOOPN指令 11100000 CALL指令 直接 11101000 段内 间接 11111111 直接 10011010 段间 间接 11111111 RET指令 段返回 11000011 内 加参数返回 11000010 段返回 11001011 间 加参数返回 11001010 INT指令 常规中断 11001101 3号中断 11001100

disp disp-low disp-high mod 100 r/m offset-low offset-high seg-low seg-high mod 101 r/m disp disp disp disp disp disp disp disp disp disp disp disp disp disp disp disp disp disp disp disp disp disp seg-high disp-low disp-high mod 010 r/m offset-low offset-high seg-low mod 011 r/m data-low data-low type 4

data-high data-high INTO指令 11001110 IRET指令 11001111 说明:JB/JNE—与JC指令相同; JAE/JNB—与JNC指令相同; type—中断类型号。

五、串操作类指令

REP指令 1111001z MOVS指令 1010010w CMPS指令 1010011w SCAS指令 1010111w LODS指令 1010110w STOS指令 1010101w 说明:REP—z=0时为REPNE,Z=1时为REP和REPZ,8086默认REP对应MOVS、STOS,REPZ对应CMPS、SCAS(比较两者与5条指令配合时的有效性)。

六、处理器控制类指令

CLC指令 11111000 STC指令 11111001 CMC指令 11110101 CLI指令 11111010 STI指令 11111011 CLD指令 11111100 STD指令 11111101 NOP指令 10010000 HLT指令 11110100 WAIT指令 10011011 ESC指令 11011xxx mod xxx r/m LOCK指令 11110000 说明:x—可为任意值(0/1)。

5

本文来源:https://www.bwwdw.com/article/ng0o.html

Top