/* 根据System V ABI,栈地址必须16字节对齐 */
/* 这里只是一个临时栈,在_hhk_init里面我们会初始化内核专用栈 */
stack_bottom:
- .skip 16318 * 2, 0
- stack_top:
+ .skip 4096, 0
+ __stack_top:
/*
cld
# 确保屏蔽所有外中断,直到我们准备好PIC为止
cli
- movl $stack_top, %esp
+ movl $__stack_top, %esp
subl $16, %esp
movl %eax, %cr3
movl %cr0, %eax
- orl $0x80010000, %eax /* 开启分页与地址转换 (CR0.PG=1, CR0.WP=1) */
+ orl $0x80000000, %eax /* 开启分页与地址转换 (CR0.PG=1, CR0.WP=0) */
andl $0xfffffffb, %eax
orl $0x2, %eax /* 启用x87 FPU (CR0.MP=1, CR0.EM=0) */
movl %eax, %cr0