以8086为例。
1、段基址和段内偏移地址都是16位(8086仅有16位数据总线);物理地址是20位(8086有20位地址总线)。
2、由于段内偏移地址是16位,所以每个段最大2^16,即0xFFFF。
3、段基址也是16位的,它放在一个20位的数据中,则低4位一定为0。

4、公式中以十进制的眼光看,确实不好理解,然则以十六进制看,再结合下图,就易懂了

00000  |---------|
              |           |
0FFFF  |_____|
10000  |            |
              |            |
1FFFF  |---------|

以10000-1FFFF为例,段基址是1000,左移4位即成了10000,加上16位的偏移地址,正好形成10000-1FFFF间的某个物理地址。

注意:实模式下,段寄存器存的是段基址,以上公式直接得到物理地址,但是在保护模式下,段寄存器内存放的是段选择子,

用段选择子到段描述符表中取得段基址,再加上偏移地址,得到的是线性地址(段式内存管理),还不是物理地址,线性地址被划分为4k的页,

页面再映射到物理地址(页式内存管理),注意连续的页面映射在物理地址上可以是不连续的,具体可参考《Linux内核源代码情景分析》第31页和33页。

关于“物理地址=段基址x16+段内偏移地址”相关推荐

  1. 2020-11-24(Windows保护模式学习笔记(1)—— 段寄存器与段权限检查)

    X86 CPU的三个模式:实模式.保护模式和虚拟8086模式 0x01 段寄存器 通常情况下,我们认为有8个段寄存器,他们分别是 ES CS SS DS FS GS LDTR TR 其中,后四个寄存器 ...

  2. 在8086中,逻辑地址、偏移地址、物理地址,分别指的是什么

    作答:逻辑地址是在程序中对存储器地址的一种表示方法,有段地址和段内偏移地址两部分组成,如1234H;0088H; 偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码: 物理地址 ...

  3. 【计组】偏移地址、段地址和寻址方式

    一.逻辑地址和物理地址 物理地址可以理解成是某个存储单元的真正的地址,然而地址总线有20位,寄存器们只有16位,无法完全访问到呀.所以就想到一个办法,搞出一个逻辑地址,之后编程都使用逻辑地址. 写法为 ...

  4. 获取linux内核基址,LInux内核如何获取段基址和段长度

    引题: 0.11内核版本代码在do_exit函数中需要获取段的基址和长度 free_page_tables (get_base (current->ldt[1]), get_limit (0x0 ...

  5. 给定地址段为0001H,仅通过变化偏移地址寻址,CPU的寻址范围为____到____

    此题解题背景默认为8080型CPU,地址总线为16根.(8080-16,8086-20,8088-20,80286-24,80386-32) 16根地址总线寻址能力:(2 ** 16) / 1024 ...

  6. 12、(12.4.2)保护模式下数据段和栈段保护

    1/向下扩展的栈段 实际使用的段界限就是段内不允许访问的最低端偏移地址, (基地址+0)~(基地址+段界限)这段空间是不属于栈段. 举例画图说明: 例1, 基地址为0x00000010,段界限为0x1 ...

  7. RO段、RW段和ZI段 --Image$$??$$Limit 含义

    要了解RO,RW和ZI需要首先了解以下知识: (1) ARM程序的组成             此处所说的"ARM程序"是指在ARM系统中正在执行的程序,而非保存在ROM中的bin ...

  8. 关于text段、data段和bss段

    根据APUE,程序分为下面的段:.text, data (initialized), bss, stack, heap. data/bss/text: text段在内存中被映射为只读,但.data和. ...

  9. 内存空间分几部分:代码段、数据段,栈,堆 (收集整理)

    1.函数代码存放在代码段.声明的类如果从未使用,则在编译时,会优化掉,其成员函数不占代码段空间. 全局变量或静态变量,放在数据段, 局部变量放在栈中, 用new产生的对象放在堆中, 内存分为4段,栈区 ...

最新文章

  1. 2020新款手机,吃鸡贼爽!包邮送一个!
  2. springboot 前缀_SpringBoot配置文件的注入
  3. iOS8开发~UI布局(三)深入理解autolayout
  4. 投资银行对Java进行的二十大核心面试问答
  5. C语言实现树,你一定看得懂
  6. 对于成功的GDUUU商人来说
  7. 常用数据结构算法 c++模板实现
  8. 配色方案为您的下一个设计项目准备,照着配准没错!
  9. mysql shell无法启动服务_[shell脚本] mysql服务启动脚本
  10. CRM 2013 中业务流程的
  11. JavaScript 下载文件并保持原文件名称
  12. UML之旅店预订系统
  13. 【​观察】一部《天龙八部》,缘起“六脉神剑”
  14. 物联网组成,主要包含哪些基本要素,物联网市场需求的特征是什么?
  15. Android如何实现实时音视频会议的背景分割
  16. iOS 工作中遇到的问题(面试重点)
  17. Google默认壁纸的尺寸要求
  18. python 连接数据库并批量生成数据
  19. 2018 mac下安装redis 和 redis可视化工具rdm并且连接redis
  20. 常用的Joomla扩展 模块 插件

热门文章

  1. 《微波原理与技术》学习笔记5波导理论-微波传输线
  2. 腾讯Java开发岗:linux安装java环境
  3. SOR和SSOR迭代
  4. 海康键盘简单使用命令
  5. 「镁客·请讲」拓攻机器人尹亮亮:以第三方飞控解决方案提供商的身份进入市场...
  6. 职位-CIO:CIO
  7. 计算机二级access知识点6,知识点:全国计算机二级Access上机考点解析
  8. 计算机教师教学能手演讲,教学能手代表的发言稿(精选6篇)
  9. 腾讯音乐的2021主基调:稳与变
  10. swal弹窗_swal的几种用法