汇编学习笔记--寄存器(内存访问 1)

本文详细介绍了8086处理器中如何通过段地址和偏移地址进行内存访问,并给出了具体的指令示例,帮助读者理解ds寄存器的作用及内存读写过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内存访问首先要有地址,8086pc中的段地址存放在 ds 寄存器中(ds 和 cs是不一样的,cs是定位地址用于读取内存中的指令或者数据,而ds是读取内存中的数据时使用,下面我们会明白区别)


将内存中的数据写入寄存器:

mov bx,1000H

mov ds,bx

mov al,[0]

第一句是把1000H给bx(寄存器),第二句把bx中的值给ds(段地址寄存器),第三句从1000:0H中读取数据给al(寄存器ax的低8位);至于为什么不直接把段地址1000H给ds,这是8086硬件设计的问题,咱只能这么做了。


把最后一句改成 mov [0],al 意思就是把寄存器ax的低8位写入内存地址1000:0H处。


可以做以下例子:

mov ax,1000H

mov ds,ax

mov ax,11316

mov [0],ax

mov bx,[0]

sub bx,[2]

mov [2],bx

内存中的数据:

10000H:23

10001H:11

10002H:22

10003H:11

最后的结果会让你吃惊的,想知道的话就留言吧。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值