逻辑地址与物理地址的转换

简介: 最近一直在学8086,上课老师突然问了个这。对于问题“8086 CPU 能提供20位的地址信息,可直接对1M个存储单元进行访问,而CPU内部可用来提供地址信息的寄存器都是16位,那怎样用16位寄存器来实现20位地址寻址呢"明白了不少。

最近一直在学8086,上课老师突然问了个这。对于问题“8086 CPU 能提供20位的地址信息,可直接对1M个存储单元进行访问,而CPU内部可用来提供地址信息的寄存器都是16位,那怎样用16位寄存器来实现20位地址寻址呢"明白了不少。


下图是8086的CPU架构。

20200628105617582.png

那个年代,条件比较差,能凑合的就凑合,能共用的就共用。8086 CPU的地址总线针脚数据总线针脚就共用了。


8086是一个16位的CPU,数据(Data)总线就有16位,一次性可以传输16个比特位。和地址(Address)总线凑合着一起共用,于是就取名AD0-AD15。


地址总线却不止16个,还多出了A16-A19整整4个呢!这样有20个地址线,可以寻址1MB的内存了!


但是8086的寄存器都是16位的啊,只能存放16位的地址。于是用分段式存储管理的方法,把内存划分为最大64KB的小块,为什么是64KB呢,因为16位地址最多只能寻址这么大了。然后又加了几个叫做段寄存器的东西,指向这些块的开头,这样,通过段地址+段内偏移地址的方式,就能访问更多的内存了。

20200628110253856.png

关于逻辑地址是允许在程序中编排的地址,8086的逻辑地址有段地址和段内偏移量两部分,表达形式为“段地址:段内偏移地址”。


 逻辑地址和物理地址的转换?(期末考试会考的)

之前说20位的地址信息可以对1M个内存单元进行访问,就是说编址00000H~FFFFFH,而段寄器CS,DS,SS,ES即存放了这些地址的高4位,如12345H,则某个段寄存器便会存储1234H高4位信息,这即为段地址。

  而段内偏移地址就是移动后相对于段地址的偏移量。

  物理地址就是地址总线上提供的20位地址信息。物理地址=段地址*10H+段内偏移地址。段地址乘以10H是因为段地址当时是取高四位得到的,所以还原后要让段地址左移4位(10H = 10000B),例如(cs)= 20A8H,(IP)=  2008H,则物理地址为20A8H*10H+2008H = 22A88H。


注:段地址*16(十进制)+偏移地址=物理地址!

我的认识:物理地址表达方法是十六进制*16相当于把十六进制向前移了1位,

FFFFF(10485575)/1024=1023KB(0~1023KB),【2的20次方等于10485575/1024=1024kb】

1024KB等于1MB,所以段地址只用移一位在加上偏移地址,用【段地址:偏移地址】的方法就可以表达8086CPU索引的1MB了。

斜体为引用。


目录
相关文章
|
1月前
|
人工智能 JSON 自然语言处理
2025年测试工程师的核心竞争力:会用Dify工作流编排AI测试智能体
测试工程师正从脚本执行迈向质量策略设计。借助Dify等AI工作流平台,可编排“AI测试智能体”,实现用例生成、语义校验、自动报告等全流程自动化,应对AI应用的动态与不确定性,构建智能化、可持续集成的测试新体系。
|
机器学习/深度学习 人工智能 计算机视觉
带你读《深度学习与图像识别:原理与实践》之一:机器视觉在行业中的应用
这是一部从技术原理、算法和工程实践3个维度系统讲解图像识别的著作,由阿里巴巴达摩院算法专家、阿里巴巴技术发展专家、阿里巴巴数据架构师联合撰写。在知识点的选择上,本书广度和深度兼顾,既能让完全没有基础的读者迅速入门,又能让有基础的读者深入掌握图像识别的核心技术;在写作方式上,本书避开了复杂的数学公式及其推导,从问题的前因后果 、创造者的思考过程,利用简单的数学计算来做模型分析和讲解,通俗易懂。更重要的是,本书不仅仅是聚焦于技术,而是将重点放在了如何用技术解决实际的业务问题。
|
安全 Linux 数据安全/隐私保护
雷池WAF-LTS版本安装教程
雷池WAF是一款高效、易用的Web应用防火墙,通过反向代理与流量过滤,有效防护Web服务免受黑客攻击。本文详细介绍如何部署雷池LTS版本,涵盖自动与手动安装方式,适用于Linux系统,依赖Docker环境,帮助用户快速构建安全防护体系。
|
存储
逻辑地址和物理地址转换
逻辑地址和物理地址转换
1267 0
|
10月前
|
机器学习/深度学习 存储
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
419 0
RT-DETR改进策略【模型轻量化】| PP-LCNet:轻量级的CPU卷积神经网络
|
12月前
|
JSON JavaScript 前端开发
一次采集JSON解析错误的修复
两段采集来的JSON格式数据存在格式问题,直接使用PHP的`json_decode`会报错。解决思路包括:1) 手动格式化并逐行排查错误;2) 使用PHP-V8JS扩展在JavaScript环境中解析。具体方案一是通过正则表达式和字符串替换修复格式,方案二是利用V8Js引擎执行JS代码并返回JSON字符串,最终实现正确解析。 简介: 两段采集的JSON数据因掺杂JavaScript代码导致PHP解析失败。解决方案包括手动格式化修复和使用PHP-V8JS扩展在JavaScript环境中解析,确保JSON数据能被正确处理。
|
算法 调度 UED
作业调度算法(含详细计算过程)和进程调度算法浅析
作业调度算法(含详细计算过程)和进程调度算法浅析
2861 1
作业调度算法(含详细计算过程)和进程调度算法浅析
|
JavaScript 前端开发
在Vue中实现全屏背景图片
在Vue中实现全屏背景图片
379 0
|
XML JSON 网络协议
【TCP/IP】自定义应用层协议,常见端口号
【TCP/IP】自定义应用层协议,常见端口号
447 3