寄存器指令MOV ADD SUB

1、不可以直接mov到段寄存器

将内存中的东西送入寄存器?

MOV BX 1000H

MOV DS,BX

MOV AL,[0]

先mov到通用寄存器,再从通用寄存器到段寄存器      <数据->通用寄存器->段寄存器>

到时候他会根据偏移地址和段地址找到内存地址将10000H(1000:0)中的数据读到AL

MOV AL,[0]:

1、将数据送入寄存器MOV AX,2E

2、将一个寄存器的内容送到另一个寄存器MOV AX,BX

3、以及现在使用的将一个内存单元的内容送入一个寄存器MOV AL,[0]

2、将AL中的数据送入内存单元1000H

MOV BX,1000H

MOV DS,BX

MOV [0],AL//这里是将AL寄存器里面的东西送到偏移地址为0的地方

MOV的几种形式

MOV 寄存器,数据

MOV 寄存器,寄存器

MOV 寄存器,内存单元

MOV 内存单元,数据

MOV 段寄存器,寄存器

add和sub指令同mov一样,都有两个操作对象

代码段和数据段

对于8086机器,我们可以根据需要将一组内存单元定义为一个段(代码段/数据段)

代码段:CS指向它他就是代码段

数据段:DS指向它就是数据段(怎么指向CPU就怎么认(代码段/数据段))

例子:

用123B0-123B9这段空间存放数据

段地址123B

长度10字节

看我们自己怎么认为123 段地址B0-B9偏移地址。。都可以

#####一个字是16位因为8086CPU是16位所以才有的这个概念,以前都是8位才有的字节

例题:将123B0H-123BAH定义为数据段,累加这个数据段中前三个的单元中的数据

MOV AX,123BH

MOV DS,AX//传送地址

MOV AL,0

ADD AL,[0]

ADD AL,[1]

ADD AL,[2]

传送3个字型数据

MOV AX,123BH

MOV DS,AX//传送地址

MOV AX,0

ADD AX,[0]

ADD AX,[2]

ADD AX,[4]

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值