system_call.s

来自「阿基米德操作系统的源代码」· S 代码 · 共 53 行

S
53
字号
nr_system_calls = 5.globl system_call.align 4system_call:

	cld
	push   %gs
	push   %fs
	push   %es
	push   %ds
	pushl  %ebp
	pushl  %edi
	pushl  %esi
	pushl  %edx
	pushl  %ecx
	pushl  %ebx

	movl  $0x10,%edx
	mov	  %dx,%ds
	mov	  %dx,%es
	mov	  %dx,%fs

	//////////////////////////////////////
	pushl %eax
	shrl  $16,%eax
	cmpl  $nr_system_calls - 1,%eax
	ja	  system_call_0

	call  *system_call_table(,%eax,4)
	jmp	  system_call_1 

system_call_0:
	movl	$-1,%eax

system_call_1:
	addl	$4,%esp
	//////////////////////////////////////

	popl  %ebx
	popl  %ecx
	popl  %edx
	popl  %esi
	popl  %edi
	popl  %ebp
	pop   %ds
	pop   %es
	pop   %fs
	pop   %gs

	iret

⌨️ 快捷键说明

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