当前位置: 首页 > news >正文

实模式下的地址分段

实模式下的地址分段

在程序里我们可能要操作一些位于内存中的数据,如何找到这些数据呢?当然是通过地址。

程序在执行之前需要加载到内存中,数据也是如此。如果我们直接把需要操作的数据的地址写死在程序代码中,若程序和数据加载的地址发生了变化,那么代码中写死的地址就无效了。

为了解决这个问题,我们引入了分段机制。简单来说就是把物理地址分成若干逻辑段,用于存放指令和数据。每个段的起始地址就是段地址,代码中的地址是段内偏移地址。真实的物理地址由段地址加上偏移地址得到。段地址是程序加载时就写入段寄存器中的。

CS和DS寄存器就分别用于存放代码段地址和数据段地址。ES为附加段地址寄存器,SS为堆栈段地址寄存器。

在8086处理器中,段寄存器是16位的,但是该处理器却有20条地址总线。如何利用16位的段寄存表示20位的地址呢?为此,真实的物理段地址需要右移四位,也就是除以16,这样就得到了16位的逻辑段地址。这就要求段地址必须是16的整数倍。当需要形成物理地址的时候,段寄存器中的段地址就乘以16,再加上代码中的偏移地址就可以得到真实的物理地址。形成物理地址的工作是由一个叫总线接口部件的部件完成的。

16位的段寄存器最多可以表示2的16次方个段地址,20位地址总线最多可以访问1MB个地址。也就是说,每个段的最大是64KB。由此也可以算得每个段最小的大小和最大段数量。

http://www.dtcms.com/a/511522.html

相关文章:

  • clickhouse 检查是否有删除语句在执行
  • 网站职能怎么将自己的视频推广出去
  • ubuntu22.04 ros2 kobuki底盘控制全纪录
  • 深圳网站建设外贸公司做单抗药的看什么网站好
  • 植物大战僵尸杂交版v3.12最新版本(附下载链接)
  • 云手机的安全保护措施有哪些?
  • 计算机毕业设计240—基于python+爬虫+html的微博舆情数据可视化系统(源代码+数据库)
  • 制作梦核的网站做h网站
  • 本地部署开源数据分析平台 Elastic Stack 并实现外部访问( Windows 版本)
  • 高性能组件_线程内存redis_Mysql_内存序_malloc
  • 2025年前端技术全景指南:从基础到架构的实战手册
  • RuoYi/ExcelUtil修改(导入excel表时,表中字段没有映射上数据库表字段)
  • C++ 分治 快排铺垫 三指针 力扣 75.颜色分类 题解 每日一题
  • 预测算法:股票数据分析预测系统 股票预测 股价预测 Arima预测算法(时间序列预测算法) Flask 框架 大数据(源码)✅
  • 门户网站需要多少空间如何引流被动加好友微信
  • 网站的 联系我们怎么做关键词优化难易
  • 【Java】基于 Tabula 的 PDF 合并单元格内容提取
  • Android 系统的进程模型
  • vue2实现pdf预览兼容低版本浏览器
  • Android Compose 状态的概念
  • spark组件-spark core(批处理)-rdd持久化机制
  • 安全驾驶 智在掌控|腾视科技ES06终端,为车辆运营赋能
  • el-table 表格嵌套表格
  • 云南网站建设首选才力东营注册公司
  • 非对称密码算法分析技术深度剖析及未来展望
  • Arduino IDE下载安装汉化教程(附安装包,图文并茂)
  • 本地转移新分支到新仓库
  • GaussDB慢sql信息收集和执行计划查看
  • AWS IoT Core 监控与告警优化实战报告
  • 我的第一个开源项目【IOT-Tree Server】