汇编学习笔记——寻址与存储

本文详细介绍了8086CPU的寻址与存储原理,包括物理地址、寻址能力、段地址与偏移地址、字存储、段前缀、内存寻址以及显示缓冲区和端口的使用。通过实例展示了如何在汇编中模拟数组,理解存储空间的组织和访问方式,以及如何与显存和外设进行通信。

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

目录

寻址与存储

物理地址

寻址能力

段(基)地址与偏移地址

字存储

字单元

段前缀

对内存寻址

数组模拟

显示缓冲区(显存)

端口

存储特例


 

寻址与存储

物理地址

定义:所有接入电脑的内存件都将被赋予一个独有的编号,这个编号作为CPU访问其时的‘地址’存在,编号由零开始一维延伸,因此所有内存单元构成的存储空间是一个一维的线性空间

示例:8086CPU对应的内存

PS:除了专用的内存条之外,计算机的显存、各类外接设备的存储器,所有RAM与ROM存储元件都会被统一编址

 

寻址能力

定义:CPU最多能够处理的地址的大小称为其寻址能力。由其一次可处理的数据的位数和地址总线的传输能力共同决定

示例:8086CPU是16位结构的CPU,其一次最多可处理16位数据,其寄存器的最大宽度也为16位,因此其内部处理、传输、暂存的地址必须是16位的,即若不采用其他手段,其寻址能力只有64KB。而其地址总线却有20位,可以传送20位地址,若CPU允许,可以提供1M的寻址能力。

 

段(基)地址与偏移地址

定义:用于合成为物理地址的两种地址,其中段地址又称基地址。

示例:对于8086CPU,其物理地址为20位地址,而其段地址与偏移地址都为16位地址,二者通过地址加法器转换为物理地址

PS1:段地址*16相当于段地址左移4位

PS2:当段地址取123C,偏移地址取0008时,指向的物理地址同样是123C8,即指向同一个物理地址可用的段地址和偏移地址的组合并不唯一

PS3:设计这样的寻址方式,使得16位的CPU也可以将寻址能力提高到1MB

PS4:对于以上图示的段地址和偏移地址组合,使用1230:00C8来表示,而非123C8

 

字存储

定义:占用多个字节的字在内存中存储时,高位部分存储于内存编号高的字节中,低位部分存储于内存编号低的字节中。

示例:8086CPU中16位字在内存中的存储模式

PS1:如图,对于一个16位字数据4e20,将20存放在编号为0的8位地址单元中,将4e存放在编号为1的8位地址单元中

PS2:CPU读取内存时,对于4e20所在的存储空间是从0号存储单元开始读取的,0~1形成的16位存储单元也是用内存编号低的0作为其标识的。因此CPU对该数据的读取顺序和该数据的书写顺序是相反的,应当注意这一点(书写4e20时,先书写4e,后书写20,CPU读取时则先读取20后读取4e。)</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值