8086汇编指令大全

8086汇编指令大全


2024年4月27日发(作者:)

一、数据传输指令

它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.

1.通用数据传送指令.MOV传送字或字节.

把字压入堆栈.

POP把字弹出堆栈.

PUSHA把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.

POPA把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.

PUSHAD把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.

POPAD把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.

BSWAP交换32位寄存器里字节的顺序XCHG交换字或字节.(至少有一个操作数为寄存器,

段寄存器不可作为操作数)CMPXCHG比较并交换操作数.(第二个操作数必须为累加器

AL/AX/EAX)XADD先交换再累加.(结果在第一个操作数里)XLAT字节查表转换.——BX指

向一张256字节的表的起点,AL为表的索引值(0-255,即0-FFH);返回AL为查表结

果.([BX+AL]->AL)2.输入输出端口传送指令.INI/O端口输入.(语法:IN累加器,{端口号

│DX})OUTI/O端口输出.(语法:OUT{端口号│DX},累加器)输入输出端口由立即方式指定时,

其范围是0-255;由寄存器DX指定时,其范围是0-65535.3.目的地址传送指令.LEA装入有效

地址.例:LEADX,string;把偏移地址存到传送目标指针,把指针内容装入DS.

例:LDSSI,string;把段地址:偏移地址存到DS:传送目标指针,把指针内容装入ES.

例:LESDI,string;把段地址:偏移地址存到ES:传送目标指针,把指针内容装入FS.

例:LFSDI,string;把段地址:偏移地址存到FS:传送目标指针,把指针内容装入GS.

例:LGSDI,string;把段地址:偏移地址存到GS:传送目标指针,把指针内容装入SS.

例:LSSDI,string;把段地址:偏移地址存到SS:DI.4.标志传送指令.LAHF标志寄存器传送,把标

志装入标志寄存器传送,把AH内容装入标志寄存器.PUSHF标志入栈.POPF标志

出栈.PUSHD32位标志入栈.POPD32位标志出栈.

算术运算指令

ADD加法

ADC带进位加法.

INC加1.

AAA加法的ASCII码调整.

DAA加法的十进制调整.

SUB减法.

SBB带借位减法.

DEC减1

AAS减法的ASCII码调整

DAS减法的十进制调整

SUB减法....MUL无符号乘法.IMUL整数乘法.以上两条,结果回送AH和AL(字节运算),或

DX和AX(字运算),AAM乘法的ASCII码调整.DIV无符号除法.IDIV整数除法.以上两条,结

果回送:

商回送AL,余数回送AH,(字节运算);或商回送AX,余数回送DX,(字运算).AAD除法的ASCII

码调整.CBW字节转换为字.(把AL中字节的符号扩展到AH中去)CWD字转换为双字.(把

AX中的字的符号扩展到DX中去)CWDE字转换为双字.(把AX中的字符号扩展到EAX中

去)CDQ双字扩展.(把EAX中的字的符号扩展到EDX中去)

逻辑运算指令

AND与运算.OR或运算.XOR异或运算.NOT取反.TEST测试.(两操作数作与运算,仅修

改标志位,不回送结果).SHL逻辑左移.SAL算术左移.(=SHL)SHR逻辑右移.SAR算术右

移.(=SHR)ROL循环左移.ROR循环右移.RCL通过进位的循环左移.RCR通过进位的循环右

移.以上八种移位指令,其移位次数可达255次.移位一次时,可直接用操作码.如SHLAX,1.移

位>1次时,则由寄存器CL给出移位次数.如MOVCL,04SHLAX,CL

串指令

DS:SI源串段寄存器:源串变址.ES:DI目标串段寄存器:目标串变址.CX重复次数计数

器.AL/AX扫描值.D标志0表示重复操作中SI和DI应自动增量;1表示应自动减量.Z标志用

来控制扫描或比较操作的结束.MOVS串传送.(MOVSB传送字符.MOVSW传送字.MOVSD

传送双字.)CMPS串比较.(CMPSB比较字符.CMPSW比较字.)SCAS串扫描.把AL或AX的

内容与目标串作比较,比较结果反映在标志位.LODS装入串.把源串中的元素(字或字节)逐一

装入AL或AX中.(LODSB传送字符.LODSW传送字.LODSD传送双字.)STOS保存串.是

LODS的逆过程.REP当CX/ECX<>0时重复.REPE/REPZ当ZF=1或比较结果相等,且

CX/ECX<>0时重复.REPNE/REPNZ当ZF=0或比较结果不相等,且CX/ECX<>0时重复.REPC

当CF=1且CX/ECX<>0时重复.REPNC当CF=0且CX/ECX<>0时重复.

五、程序转移指令

1>无条件转移指令(长转移)JMP无条件转移指令CALL过程调用RET/RETF过程返回.

2.单个标志位判断的条件转移指令

指令助记符 测试标记

JC

JNC

JZ/JE

JNZ/JNE

JS

JNS

JP/JPE

JNP/JPO

JO

JNO

转移条件

1

0

1

0

1

0

1

0

1

0

说明

有进借为则转移

无进借为则转移

为零或相等则转移

不为零或不相等则转移

为负数则转移

为正数则转移

有偶数个“1”则转移

有奇数个“1”则转移

有溢出则转移

无溢出则转移

CF

ZF

SF

PF

OF

CX寄存器为零则转移

JCXZ

CX

0

3>循环控制指令(短转移)LOOPCX不为零时循环.LOOPE/LOOPZCX不为零且标志Z=1时循

环.LOOPNE/LOOPNZCX不为零且标志Z=0时循环.JCXZCX为零时转移.JECXZECX为零时

转移.4>中断指令INT中断指令INTO溢出中断IRET中断返回5>处理器控制指令HLT处理

器暂停,直到出现中断或复位信号才继续.WAIT当芯片引线TEST为高电平时使CPU进入等

待状态.ESC转换到外处理器.LOCK封锁总线.NOP空操作.STC置进位标志位.CLC清进位标

志位.CMC进位标志取反.STD置方向标志位.CLD清方向标志位.STI置中断允许位.CLI清中

断允许位.

伪指令

DW定义字(2字节).PROC定义过程.ENDP过程结束.SEGMENT定义段.ASSUME建立

段寄存器寻址.ENDS段结束.END程序结束.


发布者:admin,转转请注明出处:http://www.yc00.com/web/1714181725a2397423.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信