📄 page.s
字号:
.global page_fault_interruption
page_fault_interruption:
pushl %eax
pushl %ebx
pushl %ecx
pushl %edx
pushl %esi
pushl %edi
pushl %ebp
movl %ds,%eax
pushl %eax
movl %es,%eax
pushl %eax
movl %fs,%eax
pushl %eax
movl %gs,%eax
pushl %eax
movl %ss,%eax
movl %eax,%ds
movl %eax,%es
movl %eax,%fs
movl %eax,%gs
movl 0x2c(%esp),%eax
pushl %eax
movl %cr2,%eax
pushl %eax
pushl $(0x00)
call page_fault_process
cmpl $(0x00),%eax
jne 2f
1:
movl $(0x03),%eax
movl $(0x00),%ebx
int $(0x80)
jmp 1b
2:
cmpl $(0x00),reload_cr3_flag
je 3f
movl $(0x00),reload_cr3_flag
movl %cr3,%eax
movl %eax,%cr3
3:
popl %eax
popl %eax
popl %eax
popl %eax
movl %eax,%gs
popl %eax
movl %eax,%fs
popl %eax
movl %eax,%es
popl %eax
movl %eax,%ds
popl %ebp
popl %edi
popl %esi
popl %edx
popl %ecx
popl %ebx
popl %eax
addl $(0x04),%esp
iret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -