ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

8086指令码汇总表(表格)

2022-07-06 12:02:26  阅读:164  来源: 互联网

标签:disp 汇总表 8086 MEM 指令码 指令 data REG mod


8086指令码汇总表

 

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

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

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

 

 

段REG→REG/MEM

10001100

mod reg r/m

 

 

PUSH指令

 

 

 

 

REG/MEM

11111111

mod 110 r/m

 

 

REG

01010reg

 

 

 

段REG

000reg110

 

 

 

POP指令

 

 

 

 

REG/MEM

10001111

mod 000 r/m

 

 

REG

01011reg

 

 

 

段REG

000reg111

 

 

 

XCHG指令

 

 

 

 

REG/MEM←→REG

1000011w

mod reg r/m

 

 

REG←→AX

10010reg

 

 

 

XLAT指令

11010111

 

 

 

LEA指令

10001101

mod reg r/m

 

 

LDS指令

11000101

mod reg r/m

 

 

LES指令

11000100

mod reg r/m

 

 

LAHF指令

10011111

 

 

 

SAHF指令

10011110

 

 

 

PUSHF指令

10011100

 

 

 

POPF指令

10011101

 

 

 

IN指令

 

 

 

 

直接寻址

1110010w

port

 

 

间接寻址

1110110w

 

 

 

OUT指令

 

 

 

 

直接寻址

1110011w

port

 

 

间接寻址

1110111w

 

 

 

CBW指令

10011000

 

 

 

CWD指令

10011001

 

 

 

说明:d--0/1表示REG为源/目的操作数;

w--0/1表示操作数类型为BYTE/WORD;

mod、r/m--寻址方式;

IMME--立即操作数,字段中用data表示;

reg--通用REG用3位编码,段REG用2位编码;

 

  • 算数运算类指令

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 reg 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

11111111w

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

 

 

 

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&REG→任一

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

 

TEST指令

 

 

 

 

RET/MEM&REG

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/SA/指令

110100vw

mod 100 r/m

 

 

SHR指令

110100vw

mod 101 r/m

 

 

SAR指令

110100vw

mod 111 r/m

 

 

POL指令

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)。

 

  • 控制转移类指令

JMP指令

 

 

 

 

段内-直接短转移

11101011

disp

 

 

段内-直接转移

11101001

disp-low

disp-high

 

段内-间接转移

11111111

mod 100 r/m

 

 

段间-直接转移

11101010

offset-low

offset-high

seg-low seg-high

段间-间接转移

11111111

mod 101 r/m

 

 

JO指令

01110000

disp

 

 

JNO指令

01110001

disp

 

 

JC指令

01110010

disp

 

 

JNC指令

01110011

disp

 

 

JE/JZ指令

01110100

disp

 

 

JNE/JNZ指令

01110101

disp

 

 

JS指令

01111000

disp

 

 

JNS指令

01111001

disp

 

 

JP/JPE指令

01111010

disp

 

 

JNP/JPO指令

01111011

disp

 

 

JA/JNBE指令

01110111

disp

 

 

JAE/JNB指令

01110011

disp

 

 

JB/JNAE指令

01110010

disp

 

 

JBE/JNA指令

01110110

disp

 

 

JG/JNE指令

01111111

disp

 

 

JGE/JNL指令

01111101

disp

 

 

JL/JNGE指令

01111100

disp

 

 

JLE/JNG指令

01111110

disp

 

 

JCXZ指令

11100011

disp

 

 

LOOP指令

11100010

disp

 

 

LOOPZ/LOOPE指令

11100001

disp

 

 

LOOPNZ/LOOPN指令

11100000

disp

 

 

CALL指令

 

 

 

 

段内-直接

11101000

disp-low

disp-high

 

段内-间接

11111111

mod 010 r/m

 

 

段间-直接

10011010

offset-low

offset-high

seg-low set-high

段间-间接

11111111

mod 011 r/m

 

 

RET指令

 

 

 

 

段内-返回

11000011

 

 

 

段内-加参数返回

11000010

data-low

data-high

 

段间-返回

11001011

 

 

 

段间-加参数返回

11001010

data-low

data-high

 

INT指令

 

 

 

 

常规中断

11001101

type

 

 

3号中断

11001100

 

 

 

INTO指令

11001110

 

 

 

IRET指令

11001111

 

 

 

说明:JB/JNE--与JC指令相同;

JAE/JNB--与JNC指令相同;

type--中断类型号;

 

 

  • 串操作类指令

REP指令

1111011z

 

 

 

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);

标签:disp,汇总表,8086,MEM,指令码,指令,data,REG,mod
来源: https://www.cnblogs.com/zhangdezhang/p/16450244.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有