数据传送指令

一、通用数据传送指令

1、MOV 传送指令(双操作数指令)

格式:MOV DST,SRC

操作:(DST)<-(SRC),将源操作数传送到目的操作数

其中,DST位目的操作数,SRC位源操作数

规定:(1)源操作数与目的操作数的长度必须明确且一致,即必须同时为8位或16位。             

(2)目的操作数与源操作数不能同时为存储器,不允许在两个存储单元之间直接传送数据            

(3)目的操作数不能为CS或IP,因为CS:IP指向的是当前要执行的指令所在的地址。         

(2)目的操作数不可以是立即数

:寄存器需通过寄存器得到段地址,不能直接由符号地址、段寄存器、立即数得到。

2、PUSH 进栈指令段地址

格式:PUSH SRC

操作:(SP)<-(SP)-2                                                                                                                                       ((SP)+1,(SP))<-(SRC)

(1)目的操作数地址由SS:SP指定,SP总是指向栈顶(大地址)。

(2)入栈时,先将栈顶指针SP减2(2表示2个字节,16位机器字长),以便指向新的内存地址接受16位源操作数,同时指向新的栈顶。

(3)堆栈操作以字为单位进行操作。

3、POP出栈指令

格式:POP DST

操作:(DST)<-((SP)+1,(SP))                                                                                                                         (SP)<-(SP)+2

4、XCHG 交换指令

格式:XCHG OPR1,OPR2

操作:(OPR1)<- ->(OPR2)【把两个操作数互换位置】

均为目的操作数,除了遵循双操作数指令的规定,也不能用立即数寻址。

二、累加器专用传送指令【只限于AX、AL】

1、IN 输入指令

把端口号PORT或由DX指向的端口的数据输入到累加器。

(1)长格式:IN AL,PORT(字节)                                                                                                                              IN AX,PORT(字)                                                                                                     

其中PORT为端口号,端口号的范围为00~FFH(256),机器指令长度为2个字节(端口号占1个字节)。

(2)短格式:IN AL,DX(字节)                                                                                                                                    IN AX,DX(字)                                                                                                           

其中PORT为端口号,端口号的范围为0000~FFFFH(65536),机器指令长度为1个字节,端口号存放在DX寄存器中。

2、OUT 输出指令

把累加器的数据输出到端口PORT或由DX指向的端口。

(1)长格式:IN PORT,AL(字节)                                                                                                                              IN PORT,AX(字节)

(2)短格式:IN DX,AL(字节)                                                                                                                                    IN DX,AX(字节)

3、XLAT 换码指令

格式:XLAT

操作:AL<-(BX+AL)

三、地址传送指令

1、LEA 有效地址送寄存器指令

格式:LEA REG,SRC

操作:REG<-SRC

把源操作数的有效地址EA送到指定的寄存器。

2、LDS 指针送寄存器和DS指令

格式:LDS REG,SRC

操作:REG<-(SRC)                                                                                                                                       (DS)<-(SRC+2)

把源操作数SRC所指向的内存单元中2个字送到指定的寄存器REG和DS。

3、LES 指针送寄存器和ES指令

格式:LES REG,SRC

操作:REG<-(SRC)                                                                                                                                 ES<-(SRC+2)

把源操作数SRC所指向的内存单元中的2个字送到指定的寄存器REG和ES。

四、标志寄存器传送指令

1、LAHF 标志送AH寄存器指令
2、SAHF AH送标志寄存器指令
3、PUSHF 标志入栈指令
4、POPF 标志出栈指令

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值