32位cpu下的实模式。

大半生还是很失败 2023-07-27 02:39:31

“实模式下,处理器也是用段寄存器描述符高速缓存器的32 位基地址加上16 位偏移地址访问内存,只不过基地址的高12 位通
常是0”

所以这是32位cpu上兼容实模式的机制嘛?

那实模式下,会用到gdtr和gdt这东西嘛?

如果描述符高速缓存器高12位不是0呢,那实模式怎么执行,是做隔断,只取后20位做基地址嘛,不理前12位嘛?

实模式下,怎么执行32位指令,32位寄存器的,是直接用32条的地址总线嘛,还是像旧cpu一样,只能用20个地址总线,然后分及次读写数据?不是说啥编译带反转前缀那个,我是好奇cpu在实模式下怎么去操作这些32位东西,

 

...全文
309 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-07-27
精选
  • 打赏
  • 举报
回复
您的问题已经帮您同步至问答, 链接: https://ask.csdn.net/questions/7982565, 请您保持关注, 如果回答有帮助解决此问题, 麻烦您动动小手给相关的回答点赞, Ada会在评论区为您更新结题状态
  • 打赏
  • 举报
回复

既然“32位x86中的实模式是一种经过特殊设置的保护模式”,那么保护模式那套东西大部分仍然起作用,只是隐藏在幕后而已。可以通过设置突破64K的段限制,也可以修改描述符使段位于1MB以上地址,实模式下怎么执行32位指令,和32位下怎么执行16位指令是类似的,通过指令的操作尺寸前缀和地址尺寸前缀来实现。

  • 打赏
  • 举报
回复

32位x86中的实模式是一种经过特殊设置的保护模式:禁用分页、装载段寄存器的值时直接设置对应描述符的基地址、段限制设置为64K、段访问权限设置为00
所以基于这种设置,可以搞一些另类操作,比如big real mode,就是从实模式切换进保护模式,修改某个段(比如es)的描述符,改成基地址0限制4G,再切换回实模式,就可以通过es访问4GB物理地址了。

  • 举报
回复
@日立奔腾浪潮微软松下联想 我刚保护模式入门,你发这个,我看的懂,但还不能内化。能麻烦回答下我提问嘛,这是我目前疑惑啦
  • 打赏
  • 举报
回复

还有没有大佬

21,496

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧