举例说明常用的传输类汇编指令的使用

举例说明常用的传输类汇编指令的使用

1、MOV指令

本指令将一个源操作数送到目的操作数中,即OPRD1<–OPRD2。

举例:

MOV 寄存器,数据 比如:MOV AX,8

MOV 寄存器,寄存器 比如:MOV AX,BX

MOV 寄存器,内存单元 比如:MOV AX,[0]

MOV 内存单元,寄存器 比如: MOV [0],AX

MOV 段寄存器,寄存器 比如: MOV DS,AX

图示举例:(汇编金手指)

在这里插入图片描述

2、PUSH指令

实现压入操作的指令是PUSH指令

单个汇编语言举例:

PUSH AX

PUSH 寄存器:将寄存器中的数据放入栈中

PUSH DX

PUSH 段寄存器:将一个段寄存器中的数据入栈

PUSH [BX+ 0068H]

PUSH 内存单元:将一个内存单元处的字入栈

汇编程序指令:

MOV AX,1000H

MOV SS,ax

MOV SP,2

MOV AX,6866H

push ax

在这里插入图片描述

3、POP指令

实现弹出操作的指令是POP指令

单个汇编语言的举例:

POP AX

POP 寄存器:将栈中的数据放入寄存其中

POP DX

POP 段寄存器:出栈,用一个段寄存器接受出栈的数据

POP [2] pop [IDATA]

POP 内存空间:出栈,用一个内存字单元接受出栈的数据

汇编程序的举例:

MOV AX,1000H

MOV SS,AX

MOV SP,2

MOV AX,6866H

PUSH AX

在这里插入图片描述

4、XCHG指令

将两个操作数相互交换位置,该指令把源操作数OPRD2与目的操数OPRD1交换

单个汇编语言举例:

XCHG AX,BX

将寄存器ax中的内容和bx中的内容进行交换

XCHG CL,CH

将CX寄存器中的高位内容和低位内容进行交换

XCHG AX,[SI]

将内存地址偏移量为SI寄存器中内容的数据与AX寄存器中的内容进行交换

XCHG BX,[BP+SI]

将内存地址偏移量为SI寄存器中数据加上BP寄存器中数据的内存单元中存放的地址与ax寄存器中的内容进行交换

汇编金手指举例:

在这里插入图片描述

5、LEA指令

将源操作数给出的有效地址传送到指定的的寄存器中

格式: LEA OPRD1,OPRD2

OPRD1 为目的操作数,可为任意一个16位的通用寄存器。

OPRD2 为源操作数,可为变量名、标号或地址表达式。

单个汇编语言举例:

LEA BX,IDATA

这个汇编指令表示的是将变量IDATA的地址送至BX

LEA DX,[BX+SI]

这个汇编指令表示的是将偏移地址为[BX+SI]的内存的地址送给寄存器DX

汇编金手指举例:

在这里插入图片描述

6、LDS指令或者LES指令

从存储器取出32位地址的指令

格式: LDS OPRD1,OPRD2

LES OPRD1,OPRD2

OPRD1 为任意一个16位的寄存器。

OPRD2 为32位的存储器地址。

单个汇编语言举例:

LDS DI,[BX]

LES DI,[BX]

指令的功能是把BX所指的32位地址指针的段地址送入DS,偏移地址送入DI
这两个指令的功能是一致的

在这里插入图片描述

7、IN指令

输入指令

单个汇编指令举例:

IN AL,86H (AL)<–(n)

将86H端口地址的内容送到AL中

IN AX,68H (AX)<–(n+1),(n)

将端口地址为68H和69H的内容送到AX中

IN AL,DX (AL)<–[(DX)]

由DX内容作端口地址的内容送至AL中

IN AX,DX (AX)<–[(DX)+1],[(DX)]

由DX以及DX+1内容作端口地址的内容送至AX中

8、OUT指令

输出指令

单个汇编指令举例:

OUT 36H,BX

表示的是37H,36H<–(BX)

OUT DX,AL

表示的是[(DX)]<–(AL)

OUT DX,AX

表示的是[(DX)+1],[(DX)]<–(AX)

9、LAHF、SAHF、PUSHF、POPF指令

LAHF指令

取FLAG标志寄存器低8位至AH寄存器

SAHF指令

将AH存至FLAG低8位

PUSHF指令

本指令可以把标志寄存器的内容保存到堆栈中去

POP指令

本指令的功能与PUSHF相反

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CYS.burst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值