【发布时间】:2014-07-21 14:58:06
【问题描述】:
flush_gdt:
lgdt [gdtr]
jmp 0x08:complete_flush
complete_flush:
mov ax, 0x10
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
mov ss, ax
ret
我无法理解这段代码的作用。 flush_gdt 是一个标签 OK ,然后 lgdt [gdtr] 将 48-bit 指针加载到 gdtr 寄存器中,然后从 jmp 0x08:complet_flush 加载。
jmp 指令有什么作用?那么为什么我们将 0x10 移动到 ax ,然后再移动到其他寄存器
【问题讨论】:
-
我认为您需要更具体地说明您对此不了解的地方?
-
我已经更新了问题请看一下
标签: assembly x86 bootloader gdt