8086汇编 数据传送指令

 

 

来源于IBM PC汇编语言程序设计  沈美明 温冬婵 编著

负责把 数据,地址或立即数传送到寄存器或者存储单元中.

 

1. 通用数据传送指令

MOV, PUSH, POP, XCHG

MOV指令在CPU内或CPU和存储器之间传送字节或字, 目的操作数不允许使用立即数, 也不能用CS寄存器, 不允许用MOV指令在两个存储单元之间直接传送数据,也不允许在两个段寄存器之间直接传送信息.

MOV指令不影响标志位

MOV AX, DATA_SEG,

MOV DS, AX   ;;段地址必须通过寄存器如AX送到DS寄存器

MOV AL, 'E'

MOV BX, OFFSET TABLE

MOV AX, Y[BP][SI]

 

PUSH AX

(SP)=(SP) -2

((SP)+1, (SP)) = (AX)

 

POP AX

(AX) = ((SP) +1, (SP))

(SP) = (SP) + 2

 

XCHG OPR1, OPR2

(OPR1)   (OPR2) 交换数据

 

2. 累加器专用传送指令

IN AL, PORT

IN AX, PORT

OUT PORT, AL

OUT PORT, AX

如:

IN AX, 28H

MOV DATA_WORD, AX

 

MOV DX, 3FCH

IN AX, DX

 

XLAT换码指令

 

3. 地址传送指令

LEA 有效地址送寄存器

如: LEA BX, [BX + SI + 0F62H]

(BX) = 0400H, (SI) =003CH

执行完指令后

(BX) = 0400 +003C +0F62  = 139EH

 

LES 指针送寄存器和ES指令

LES DI, [BX]

如:

LES DI, [BX]

(DS)=B000H, (BX) =080AH, (0B080H) = 05AEH, (0B080CH) = 4000H

则执行完后

(DI)=05EH ,  (ES) = 4000H

 

LDS 指针送寄存器和DS指令

如:

LDS SI , [10H]

(DS)=C000H, (C0010H) =0180H, (C0012H) = 2000H

则执行完后

(SI) = 0180H, (DS)=2000H

 

4. 标志寄存器传送指令

LAHF   标志送AH

SAHF   AH送标志寄存器

PUSHF  标志进栈

                   (SP) = (SP) - 2

                  ((SP) + 1, ( SP))  = (PSW)

POPF 标志出栈

                 (PSW) = ((SP) + 1 , (SP))

                (SP) = (SP) + 2

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值