⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 page.s

📁 国内一位牛人自己开发的操作系统
💻 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 + -