2009-07-07 245 views
13

我拆卸位的代碼,我碰到:x86彙編代碼中「mov eax,cr3; mov cr3,eax」的功能是什麼?

mov eax, cr3 
mov cr3, eax 

什麼是這些線路的功能?

這是x86低級別(bios/firmware /引導加載程序之前)的初始化代碼。我們甚至還沒有建立緩存。

+3

我覺得有一個更專業術語不是「取悅」 CR3,但看起來這一切都在做的,是的。 – glasnt 2009-07-07 03:24:37

+0

當我讀到這些時,我就吼了。 – 2009-07-07 03:32:40

回答

25

它通過加載cr3自身來沖洗TLB(轉換後備緩衝區)。

英特爾甚至在他們的「Intel 64和IA-32架構軟件開發手冊第3A卷 - 系統編程指南」中提到了代碼。

mov EAX,CR3 ; invalidate the TLB 
mov CR3,EAX ; by copying CR3 to itself 

你可以發現,在許多更加得心應手手冊:

http://www.intel.com/products/processor/manuals/index.htm

相關問題