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

📄 asm.s

📁 这是一个linux011版本的源码
💻 S
字号:
/* *  linux/kernel/asm.s * *  (C) 1991  Linus Torvalds *//* * asm.s contains the low-level code for most hardware faults. * page_exception is handled by the mm, so that isn't here. This * file also handles (hopefully) fpu-exceptions due to TS-bit, as * the fpu must be properly saved/resored. This hasn't been tested. */.globl divide_error,debug,nmi,int3,overflow,bounds,invalid_op.globl double_fault,coprocessor_segment_overrun.globl invalid_TSS,segment_not_present,stack_segment.globl general_protection,coprocessor_error,irq13,reserveddivide_error:	pushl $do_divide_errorno_error_code:	xchgl %eax,(%esp)	pushl %ebx	pushl %ecx	pushl %edx	pushl %edi	pushl %esi	pushl %ebp	push %ds	push %es	push %fs	pushl $0		# "error code"	lea 44(%esp),%edx	pushl %edx	movl $0x10,%edx	mov %dx,%ds	mov %dx,%es	mov %dx,%fs	call *%eax	addl $8,%esp	pop %fs	pop %es	pop %ds	popl %ebp	popl %esi	popl %edi	popl %edx	popl %ecx	popl %ebx	popl %eax	iretdebug:	pushl $do_int3		# _do_debug	jmp no_error_codenmi:	pushl $do_nmi	jmp no_error_codeint3:	pushl $do_int3	jmp no_error_codeoverflow:	pushl $do_overflow	jmp no_error_codebounds:	pushl $do_bounds	jmp no_error_codeinvalid_op:	pushl $do_invalid_op	jmp no_error_codecoprocessor_segment_overrun:	pushl $do_coprocessor_segment_overrun	jmp no_error_codereserved:	pushl $do_reserved	jmp no_error_codeirq13:	pushl %eax	xorb %al,%al	outb %al,$0xF0	movb $0x20,%al	outb %al,$0x20	jmp 1f1:	jmp 1f1:	outb %al,$0xA0	popl %eax	jmp coprocessor_errordouble_fault:	pushl $do_double_faulterror_code:	xchgl %eax,4(%esp)		# error code <-> %eax	xchgl %ebx,(%esp)		# &function <-> %ebx	pushl %ecx	pushl %edx	pushl %edi	pushl %esi	pushl %ebp	push %ds	push %es	push %fs	pushl %eax			# error code	lea 44(%esp),%eax		# offset	pushl %eax	movl $0x10,%eax	mov %ax,%ds	mov %ax,%es	mov %ax,%fs	call *%ebx	addl $8,%esp	pop %fs	pop %es	pop %ds	popl %ebp	popl %esi	popl %edi	popl %edx	popl %ecx	popl %ebx	popl %eax	iretinvalid_TSS:	pushl $do_invalid_TSS	jmp error_codesegment_not_present:	pushl $do_segment_not_present	jmp error_codestack_segment:	pushl $do_stack_segment	jmp error_codegeneral_protection:	pushl $do_general_protection	jmp error_code

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -