?? loader.s
字號:
#include "pm.h".code16.text jmp LABEL_BEGINLABEL_GDT: Descriptor 0, 0, 0LABEL_DESC_CODE32: Descriptor 0, (SegCode32Len - 1), (DA_C + DA_32)LABEL_DESC_VIDEO: Descriptor 0xB8000, 0xffff, DA_DRW.set GdtLen, (.-LABEL_GDT)GdtPtr :.2byte (GdtLen - 1) .4byte 0.set SelectorCode32, (LABEL_DESC_CODE32 - LABEL_GDT).set SelectorVideo , (LABEL_DESC_VIDEO - LABEL_GDT)LABEL_BEGIN: mov %cs,%ax mov %ax,%ds mov %ax,%es mov %ax,%ss mov $0x100, %sp xor %eax,%eax mov %cs,%ax shl $4,%eax addl $(LABEL_SEG_CODE32),%eax movw %ax,(LABEL_DESC_CODE32 + 2) shr $16, %eax movb %al,(LABEL_DESC_CODE32 + 4) movb %ah,(LABEL_DESC_CODE32 + 7) xor %eax,%eax mov %ds, %ax shl $4,%eax add $(LABEL_GDT), %eax movl %eax,(GdtPtr + 2) lgdtw GdtPtr cli inb $0x92,%al orb $0b00000010,%al outb %al,$0x92 movl %cr0,%eax orl $1,%eax movl %eax,%cr0 ljmpl $SelectorCode32,$0LABEL_SEG_CODE32: .code32 mov $(SelectorVideo),%ax mov %ax,%gs movl $((80*10 + 0)*2),%edi movb $0xC,%ah movb $'K',%al mov %ax,%gs:(%edi) jmp . .set SegCode32Len, .-LABEL_SEG_CODE32
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -