8086是16位CPU,CPU内部 寄存器 都是16位。那么地址也是由CPU里面的寄存器提供的,故只能提供16位地址,可寻址64K空间。而8086觉得64K空间不够用,引脚地址线非要弄成20条,寻址1M空间。但CPU里面地址只能是16位提供16位地址,里面的16位地址和外面的20根地址线矛盾怎么解决呢?只好多加了那几个 段寄存器 ,和一些如DI的指针寄存器。每次形成地址时,根据不同的指令,系统会自动选取一个段寄存器(16位)左移四位后再加上一个对应的指针寄存器(在BIU里的地址 加法器 中完成),形成实际的物理地址20位输出,可寻址1M空间。你看四个段左移四位后形成20位的实际物理地址的段基址,再加上各自的指针64K的范围,四个段每个都是64K。 总结:8086采用这种段加偏移技术,可以解决内部寄存器16位,但可提供20位地址的问题,将外寻址空间扩大到1M。我们在程序最初将CS DS SS ES给初值后,那这四个段在1M空间中的起始位置就确定了,由于每段对应的指针(如DI)是16位,故每段大小是64K。当然CS,DS还可以再重给初值对段重新定义,CS,DS可以相同几个段重叠(如果放得下的话),也可以分开。大致是这样,不知你明白了没?

8086内存分段理解相关推荐

  1. 内存分段分页机制理解

    现代操作系统,计算机内存是按照先分段再分页的方式管理的. 注意: 以下描述都是基于32位计算机进行描述的. 1. 分段 1) 程序直接使用物理地址的问题 考虑最原始,最直接的情况,程序中访问的地址都直 ...

  2. 内存分段分页机制理解_深度干货 | 真棒! 20 张图揭开内存管理的迷雾,瞬间豁然开朗...

    openEA开源周刊 openEA开源社区的官方运营载体 这里每天给大家呈现有价值的开源资讯,欢迎您的来稿与推荐,点击上方蓝色字,加入我们吧! 摘要:本篇跟大家说说内存管理,内存管理还是比较重要的一个 ...

  3. 8086的内存分段机制

    文章目录 1 代码段和数据段 2 8086的分段机制 2.1 8086的分段机制 1 代码段和数据段 对于我们的程序来说,通常分为代码段和数据段: 对于上面的代码使用的是绝对地址,当我们的操作系统把数 ...

  4. 8086为什么不用c语言,现代汇编教材还是基于8086,对理解当今CPU(如i9)有帮助吗,还是教程太滞后?_科技数码通...

    汇编没用?胡说八道! 汇编难学?胡说八道! 任何一种高端应用场景,都需要汇编带来的高效率和高可靠性!何为高端?军事用途,工业用途,医疗领域!这些领域对运行效率和可靠性的需求都是无止境的高.你用c++可 ...

  5. 【Proteus仿真8086】往8086 内存中写入数据

    这部分内容参考这个博主 https://blog.csdn.net/TTTSEP9TH2244/article/details/122584312 微机原理与接口技术--Proteus仿真软件的使用方 ...

  6. jvm大局观之内存管理篇: 理解jvm安全点,写出更高效的代码

    jvm大局观之内存管理篇: 理解jvm安全点,写出更高效的代码 - 知乎 前言 本篇是java内存区域管理系列教程之一 - 在得知GC Root的组成之后,如何在垃圾回收发生的时刻,找到GC Root ...

  7. 内存分段分页机制理解_深入理解虚拟机,JVM高级特性-自动内存管理机制

    什么是自动内存管理机制? 对于java程序员来说,有一点是要比C/C++程序员要方便的,那就是程序在运行时,java程序不需要为每一个对象其编写对应的释放内存的代码,JVM虚拟机将为你在合适的时间去释 ...

  8. 8086为什么不用c语言,现代汇编教材还是基于8086,对理解当今CPU(如i9)有帮助吗,还是教程太滞...

    基于8086的汇编教材对理解CPU i9没有多大帮助,至少应当从早期的32位X86的汇编教材入手,对32位的系统能有一个基础的了解,如保护地址模式.协处理器.高速缓存等,进而对后期多核多线程的i3,i ...

  9. C# 内存的理解 通俗说

    一.概念 堆栈是什么? 在说堆栈之前,先说说内存是神马? 内存:程序在运行的过程,电脑需要不断通过CPU进行计算,这个计算的过程会读取并产生运算的数据,这些数据需要一个存储容器存放.这个容器,这就是内 ...

最新文章

  1. 在idea项目中的android包不能识别_项目调试编译和部署运行
  2. Python 实战多元线性回归模型,附带原理+代码
  3. 2008秋季-计算机软件基础-有序表合并 教材 P79, ex3
  4. boost::core模块实现交换primitive
  5. ion-nav-view的学习 和理解
  6. adult道具项目开发 - 模式
  7. 数据结构 - 红黑树
  8. 什么是响应式设计?为什么要做响应式设计?响应式设计的基本原理是什么?...
  9. Focal Loss 分类问题 pytorch实现代码(续2)
  10. Java面试题及答案整理
  11. JAVA图灵 自动回复_实现微信公众号聊天机器人,自动回复——nodejs+图灵机器人...
  12. 该虚拟机似乎正在使用中。如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。
  13. C/C++银行账户管理系统
  14. 小白初上手HTML+CSS 仿写小米官网logo动画
  15. 运维python要掌握到什么程度_运是什么意思 运字五行属什么
  16. 10电脑睡眠后自动关机怎么回事 win_win10电脑睡眠变关机怎么解决_win10睡眠变自动关机的处理方法-系统城...
  17. 《Python 3网络爬虫开发实战 》崔庆才著 第三章笔记
  18. SIM900A(GSM模块)学习
  19. 《令人心动的offer(第二季)》学习笔记
  20. java调用cmd命令执行mysql命令

热门文章

  1. 【C 语言】动态库封装与设计 ( 动态库调用环境搭建 | 创建应用 | 拷贝动态库相关文件到源码路径 | 导入头文件 | 配置动态库引用 | 调用动态库中的函数 )
  2. 【Android 逆向】函数拦截 ( CPU 高速缓存机制 | CPU 高速缓存机制 导致 函数拦截失败 )
  3. 【嵌入式开发】ARM 芯片简介 (ARM芯片类型 | ARM处理器工作模式 | ARM 寄存器 | ARM 寻址)
  4. js实现创建二叉树+先序遍历
  5. docker 2375 vulnerability and self-signatuer certifications
  6. PopupWindow的使用
  7. [原创] Legato 8.1 oracle full backup skip 奇怪的问题处理过程 -- 非调度日期手工运行调度也不成功(skip)...
  8. java语言解析XML
  9. C#调用WebService实例和开发
  10. main函数第3个参数envp装的是什么(envp:环境变量)