汇编——第三章 寄存器(内存访问)

本文详细介绍了8086CPU中内存中字的存储方式,包括大端和小端模式,重点讲解了DS寄存器与内存地址的关系,以及如何通过mov、add、sub指令进行数据传输。此外,还阐述了数据段的概念和栈的LIFO原则,CPU的栈机制以及push、pop指令的使用,强调了栈顶超界问题及其影响。
摘要由CSDN通过智能技术生成

第三章 寄存器(内存访问)

3.1 内存中字的存储

CPU中,用16位寄存器来存储一个字。高8位存放高位字节,低8位存放低位字节。在内存存储中,内存单元式字节单元,那么一个字就需要用俩哥哥地址连续的内存单元来存放,这个字的低位字节存放在低地址单元中,高位字节存放在高地址单元中。这叫小端方式,还有另外一个存放的方式大端方式。
这里就涉及到存储器中数据的组织方式了:

  1. 大端方式‘
    高位字节排放在内存的低地址端,低位字节存放在高地址端

  2. 小端方式
    低位字节存放在内存的低地址端,高位字节存放在高地址端

8086CPU采用的是X86结构,采用小端方式。

然后在读或写一个内存单元里面的数据的时候,需要指定起始地址,读取的长度。读取的长度是一个字还是一个字节。小端方式的起始地址是低地址。
如使用一个立即数ds:[0],这里就要指定 是字还是字节,字节:byte ptr ds:[0],字:word ptr ds:[0]

3.2 DS和[address]

CPU在读写一个内存单元的时候需要给出该内存单元的地址,内存地址由段地址和偏移地址组成。
DS:用来存放数据的段地址
SS:用来存放栈的段地址
CS:用来存放代码的段地址
这里用DS来举例,比如说我们现在要读取10000H单元的内容,段地址为1000H,偏移地址为0H。那么就要用一下的代码来实现。
mov

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值