我正在拆解一些代码而且我遇到了:
mov eax, cr3
mov cr3, eax
这些线的功能是什么?
这是x86低级别(bios / firmware /引导加载程序之前)初始化代码。我们还没有设置缓存。
答案 0 :(得分:26)
通过自己加载cr3来刷新TLB(Translation Lookaside Buffers)。
英特尔甚至在“Intel 64和IA-32架构软件开发手册第3A卷 - 系统编程指南”中提到了这些代码。
mov EAX,CR3 ; invalidate the TLB
mov CR3,EAX ; by copying CR3 to itself
您可以在以下网址找到该手册以及更多便捷手册: