gpt4 book ai didi

assembly - 为什么进入保护模式后prefetch queue要失效?

转载 作者:行者123 更新时间:2023-12-02 04:38:13 24 4
gpt4 key购买 nike

Intel Developer Manual建议切换到保护模式后,我们在MOV CR0指令改变执行流程并序列化处理器后立即执行JMP或CALL指令。目的是使预取队列无效,如第 9 章第 9.10.2 节START.ASM 列表第 174-186 行中的代码示例所建议的:

174 ; enter protected mode
175 MOV EBX,CR0
176 OR EBX,PE_BIT
177 MOV CR0,EBX
178
179 ; clear prefetch queue
180 JMP CLEAR_LABEL
181 CLEAR_LABEL:
182
183 ; make DS and ES address 4G of linear memory
184 MOV CX,LINEAR_SEL
185 MOV DS,CX
186 MOV ES,CX

为什么我们需要执行这样的操作?队列中的代码不是保持不变吗,因为像这样的短跳转根本不会改变任何标志或段,除了使预取队列中的当前数据无效以再次重新加载相同的东西之外?

最佳答案

于是,我找到了目的:根据表9-5描述STARTUP.ASM中的主要初始化步骤:

Jump near to clear real mode instruction queue

实际上,仅用于重新加载指令队列,因此早期的实模式指令被保护模式指令取代。

关于assembly - 为什么进入保护模式后prefetch queue要失效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39964347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com