8086CPU只有16位寄存器,却可以访问20位的物理地址

2023-11-13

一、背景介绍

Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。它是以8080和8085的设计为基础,拥有类似的寄存器组,但是数据总线扩充为16位。总线界面单元(Bus Interface Unit)透过6字节预存的队列位指令给执行单元(Execution Unit),所以取指令和执行是同步的,8086 CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。

二、16位的寄存器为什么可以访问20位的物理地址

地址线有20位,寄存器却只有16位,这不矛盾么?怎么才能用16位的寄存器来访问20位地址线所表示的内存范围(1M)呢?答案就是用两个寄存器,一个用来表示段(也就是段寄存器),一个用来表示段内的偏移,这样才可以做到访问20位地址线所代表的内存范围。将段地址左移4bit,则扩充到了20bit。我们知道,左移1位就是乘2,所以有了段地址×16+偏移地址,也就是段地址×10H+偏移地址,这个逻辑地址与物理地址的转换公式。

而采取这样的办法纯粹是因为硬件设计的原因,不得已而为之。

这里写图片描述

这两个16位寄存器提供的地址分别称为段地址偏移地址
它们通过地址加法器合成一个20位物理地址,然后通过内部总线将20位物理地址送到输入输出控制,之后,通过地址总线送到储存器

参考:

https://tntaxin.blog.csdn.net/article/details/78965130?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.control

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

8086CPU只有16位寄存器,却可以访问20位的物理地址 的相关文章

  • 计算机二级-C语言-计算机系统

    还未解决的题目 xff1a 5 3 xff1a 22 xff1b 5 4 xff1a 2 3 5 7 13 18 20 22 24 25 27 29概念模式 xff08 模式 xff09 xff1a 描述全局数据逻辑结构 xff1b 外模式
  • Boom!!!计算机系统,从理解到爆炸,Bomblab

    进入目录下 bomb 开始运行炸弹 对于炸弹command not found之类的鬼畜情况 xff1a chmod 777 bomb 然后再运行炸弹 objdump d bomb gt bomb s 把整个代码打到文件里去 xff0c 也
  • 多核编程与单核多线程编程

    并发 时间段内有很多的线程或进程在执行 但何时间点上都只有一个在执行 多个线程或进程争抢时间片轮流执行 并行 时间段和时间点上都有多个线程或进程在执行 单核cpu的话只能是并发 多核cpu才能做到并行执行 那有人可能有这样的疑问 那多进程的
  • 假如让你来设计SSL/TLS协议

    前言 说起网络通信协议 相信大家对 TCP 和 HTTP 都很熟悉 它们可以说是当今互联网通信的基石 但是 在网络安全方面 它们却是有着很大安全风险 窃听风险 第三方攻击者可以随意窃听通信内容 比如获取支付账号密码 冒充风险 第三方攻击者可
  • 数据密集型应用系统设计(1)

    文章目录 可靠 可拓展可维护的应用系统 软件系统最重要的三个特征 可靠性 可扩展性 可维护性 小结 可靠 可拓展可维护的应用系统 软件系统最重要的三个特征 可靠性 即使发生了某些错误 系统也可继续正常工作 故障 faults 或者叫错误 与
  • I/O控制方式——通道控制方式

    一 定义 通道是一个独立于 CPU的专管输入 输出控制的处理机 它控制设备与内存直接进行数据交换 它有自己的通道指令 这些通道指令受CPU启动 并在操作结束时向CPU发中断信号 二 原理 2 1 通道控制方式的引入 通道控制方式与DMA控制
  • 计算机的内存

    物理内存 内存是电脑的一个硬件组成部分 从单片机的组成我们可以看到 CPU 内存和输入输出接口 就组成一个完整的电脑 其他统统属于外设 内存是可以被CPU通过总线进行操作的 也就是与CPU之间有总线相连接的 电脑所有的输入输出 都是要从内存
  • 计算机系统实验之datalab

    datalab实验是CSAPP中关于整数和浮点数的位运算的实验 对于我们理解位运算和整数 浮点数的位级表示有着很好的帮助 实验目的 修改bits c的C语言代码 使其通过所有在不违反任何编码准则的情况下 在btest中进行测试 进一步熟悉整
  • 哈工大2018秋高级语言程序设计课程大作业

    Github文件下载地址哈工大2018秋高级语言程序设计课程 高级语言程序设计 实验大作业反思报告 实验大作业题目 智能趣味电子通讯录 类型 信息管理系统 学生姓名 郭茁宁 班 号 1837101 学 号 1183710109 所在院系 计
  • 内存管理技术——离散分配方式

    上一篇讲到 采用固定分区的方式 会产生页内碎片等缺点 因此引入了动态分区方式 但动态分区又产生了外部碎片 导致内存的利用率也不理想 为了进一步提高内存的利用率 所以就产生了离散的分配方式 理论来源于实际问题 这很好的体现在计算机科学中 离散
  • (四)现代计算机系统的层次结构

    程序执行结果 不仅取决于算法 程序的编写 而且取决于语言处理系统 操作系统 ISA 微体系结构 不同计算机课程处于不同层次 必须将各层析关联起来解决问题 功能转换 上层是下层的抽象 下层时上层的实现 地位为上层提供支撑环境 计算机系统的不同
  • 计算机浮点数规格化表示

    说明 在IEEE标准中 浮点数在内存中的表示是将特定长度的连续字节的所有二进制位按特定长度划分为符号域 指数域和尾数域三个连续域 float float类型在内存中占用的位数为 1 8 23 32bits double 1 11 52 64
  • 什么是环境变量?为什么java要配置环境变量?

    本文是将https blog csdn net qq 37872792 article details 80642985 与 https blog csdn net Pre waist L article details 79696507两
  • 计算机系统课程 笔记总结 CSAPP第五章 优化程序性能(5.1-5.14)

    GitHub计算机系统CSAPP课程资源 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 1 2 2 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 3 2 4 计算机系统课程 笔记总结 CSAPP第三章
  • 保护模式的分段

    一 分段的背景 在8086处理器诞生之前 内存寻址方式就是直接访问物理地址 8086处理器为了寻址1M的内存空间 把地址总线扩展到了20位 但是 一个尴尬的问题出现了 ALU的宽度只有16位 也就是说 ALU不能计算20位的地址 为了解决这
  • Win32程序之进程的原理

  • 深入理解计算机系统-笔记

    计算机系统漫游 程序 程序的生命周期从一个源程序 源文件 开始 即程序员利用编辑器创建并保存的文本文件 如文件名为hello c的c语言程序 源程序是由0和1组成的位序列 8个位被组织成一组 称为字节 每个字节表示程序中的某个文本字符 这种
  • 【科普】CRC校验(一)什么是CRC校验?

    目录 CRC 循环冗余校验 CRC 校验码的生成 CRC 的发送方与接收方 发送方 接收方 除法异或运算示意图 CRC 循环冗余校验 CRC Cyclic Redundancy Check 循环冗余检验 是一种用于检测数字数据错误的技术 作
  • 计算机系统课程 笔记总结 CSAPP第四章 处理器体系结构(4.1-4.3)

    GitHub计算机系统CSAPP课程资源 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 1 2 2 计算机系统课程 笔记总结 CSAPP第二章 信息的表示和处理 2 3 2 4 计算机系统课程 笔记总结 CSAPP第三章
  • 数据密集型应用系统设计(2)

    文章目录 数据模型与查询语言 NoSQL 数据库历史 关系数据库与文档数据库现状 数据查询语言 图状数据模型 小结 数据模型与查询语言 大多数应用程序是通过一层层叠加数据模型来构建的 例如 应用程序开发人员观测现实世界 通过对象或者数据结构

随机推荐