Linux内核学习笔记05--pmtest1.asm代码阅读
pm.inc %macro Descriptor 3 dw %2 & 0FFFFh dw %1 & 0FFFFh db (%1 >> 16) & 0FFh dw ((%2 >> 8) & 0F00h) | (%3 0F0FFh) db (%1 >> 24) & 0FFh %endmacro pmtest1.asm %include "pm.inc" org 07c00h jmp LABEL_BEGIN [SECTION .gdt] ; 段基址,段界限,属性(段界限 2bytes, 段基址 4bytes) LABEL_GDT: Descriptor 0, 0, 0 LABEL_DESC_CODE32: Descriptor 0, SegCode32Len - 1, DA_C + DA_32 LABEL_DESC_VIDEO: Descriptor 0B8000h, 0ffffh, DA_DRW GdtLen equ $ - LABEL_GDT GdtPtr dw GdtLen - 1 dd 0 SelectorCode32 equ LABEL_DESC_CODE32 - LABEL_GDT SelectorVideo equ LABEL_DESC_VIDEO - LABEL_GDT [SECTION .s16] [BITS 16] LABEL_BEGIN: mov ax, cs