实模式与保护模式的区别及寻址方式

1. 三种地址

  • 逻辑地址:
    • 实模式下由"段基地址+段内偏移"组成
    • 保护模式下由 段选择符+端内偏移组成
  • 线性地址: 逻辑地址经过分段机制后形成的线性地址, 它是平坦的; 若不启动分页, 则线性地址就是物理地址
  • 物理地址:线性地址经过分页转换后形成的地址

2.实模式寻址方式

8086CPU数据总线为16位,也就是一次最多能取2 ^ 16 = 64KB数据,这个数据也解释了实模式下为什么每个段最大只有64KB。

其地址总线为20位,这样它能寻址的能力其实是2 ^ 20 = 1MB

如何用16位寄存器实现1MB寻址能力?

        分段. 8086CPU将1MB存储空间分成许多逻辑段,每个段最大限长为64KB(但不一定就是64KB)。这样每个存储单元就可以用“段基地址+段内偏移地址”表示段基地址由16位段寄存器值左移4位表达,段内偏移表示相对于某个段起始位置的偏移量(最大寻址为64kB即2^16bit)

3.保护模式寻址

3.1 分段机制

        

 段选择符为16位,它不直接指向段,而是通过指向的段描述符,段描述符(一会介绍)再定义段的信息。下图为段选择符的结构

  •  TI用来指明全局描述符表GDT还是局部描述符表LDT,RPL表示请求特权级,索引值为13位
  • 在保护模式下最多可以表示2^13=8192个段描述符, 而TI又分GDT和LDT(如图3所示),所以一共可以表示81922=16384个段描述符,
  • 段内偏移地址为32位值,所以一个段最大可达4GB,这样163844GB=64TB,这就是所谓的64TB最大寻址能力,也即逻辑地址/虚拟地址
  • 在保护模式实际编程中,如下一条语句:jmpi 0, 8。其中的8即段选择符,8的二进制表示为:0000 0000 0000 1000b,所以这条语句的意思是跳转到GDT表(TI=0)中的第2个(段描述符表从0开始编号,所以这里的1指表中的第2个)段描述符定义的段中,其段内偏移为0。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
《x86汇编语言:从模式保护模式》是一本经典的计算机软件和硬件教材。该书通过详细讲解x86汇编语言的模式保护模式两个阶段的特点和转换过程,帮助读者深入了解计算机的底层工作原理。 模式是早期x86处理器的工作模式,它具有简单和直接访问内存的特点,但存在一些限制,例如只能寻址最多1MB的内存空间。《x86汇编语言:从模式保护模式》首先介绍了模式的基本概念和操作指令,然后通过际的编程示例,让读者熟悉模式下的汇编语言编程。 接着,《x86汇编语言:从模式保护模式》详细介绍了保护模式的内存管理、特权级和中断处理等概念和机制。保护模式是现代操作系统常用的工作模式,它具有更强大的内存管理能力和安全性,可以有效地利用计算机的资源。通过学习保护模式的相关知识,读者可以了解操作系统的内核和应用程序的执行过程,并且能够编写更强大和高效的程序。 《x86汇编语言:从模式保护模式》还介绍了x86处理器的特殊指令和编程技巧,例如x87浮点指令和SSE指令集等。这些指令和技巧可以提高程序的性能和效率,使程序员能够充分发挥x86体系结构的优势。 总之,《x86汇编语言:从模式保护模式》是一本全面且用的教材,通过对x86汇编语言的学习,读者可以更深入地了解计算机的底层原理和操作系统的工作方式。无论是想成为程序员还是深入研究计算机体系结构的人员,这本书都是一本必读之作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值