Какова функция "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
Вы можете найти это и многие другие удобные руководства по адресу: