Какова функция "mov eax, cr3; mov cr3, eax" в коде сборки x86?

Я разбираю немного кода, и я наткнулся:

mov eax, cr3
mov cr3, eax

Какова функция этих строк?

Это x86 низкоуровневый (bios/firmware/before boot loader) код инициализации. Мы еще не настроили кеширование.

Ответы

Ответ 1

Это очистка TLB (буферов буфера перевода) путем загрузки cr3 с собой.

Intel даже упоминает код в своем "Руководстве по разработке программного обеспечения 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