汇编语言(三)寄存器(内存访问)

本文介绍了8086汇编语言中内存访问的细节,包括字的存储方式、DS和[address]的用法、字的传送,以及mov、add、sub指令的应用。讲解了数据段、栈的概念,CPU如何提供栈机制,并讨论了栈顶越界问题和push、pop指令的工作原理。最后,对段进行了概述,强调了不同段在内存中的角色和访问方式。

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

汇编语言(三)寄存器(内存访问)

内存访问

内存中字的存储

在8086cpu中,一个字由两个字节单元组成。
字节单元,即存放一个字型数据(16位)的内存单元,由两个连续的内存单元组成。在8086中,高地址内存单元存放字型数据的高位字节,低地址存放字型数据的低位字节。
我们将起始位置位N的字单元简称位N地址字单元。

DS和[address]

同样的cpu读取一个内存单元的时候。内存单元地址由基础地址(段地址*10H)+偏移地址组成。
其中DS段寄存器中存储内存单元的基础地址。而我们在访问内存单元时,只需要在指令中给出偏移地址即可。
如我们想要访问220ff地址空间的数据,将其移动到ax寄存器

mov ax,2200
mov ds,ax
mov ax,[ff]

其中ff为偏移地址。同时要注意段寄存器可以使用mov命令,但是不能够使用直接量。只能使用另外一个寄存器进行中转。
这属于8086的硬件设计的问题。
还有add sub 命令的操作对象中也不能有段寄存器。

字的传送

8086有1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值