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

📄 schedule.s

📁 别人的根据linux0.11改的一个小的操作系统
💻 S
字号:
	.file	"schedule.c"	.section .textLC0:	.ascii "Error task_init()...\12\0".globl _task_init_task_init:	pushl	%ebp	movl	%esp, %ebp	pushl	%ebx	subl	$20, %esp	movl	$1, -12(%ebp)L2:	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	movl	_task(%eax), %eax	cmpl	$-1, %eax	je	L3	cmpl	$2, -12(%ebp)	setle	%al	incl	-12(%ebp)	testb	%al, %al	jne	L2L3:	cmpl	$3, -12(%ebp)	jne	L5	subl	$12, %esp	pushl	$LC0	call	_print	addl	$16, %esp	jmp	L10L5:	movl	-12(%ebp), %edx	movl	_process_id, %ecx	movl	%ecx, %ebx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	movl	%ebx, _task(%eax)	leal	1(%ecx), %eax	movl	%eax, _process_id	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	movb	$84, _task+4(%eax)	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	movb	$0, _task+5(%eax)	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	movl	$3, _task+20(%eax)	movl	-12(%ebp), %edx	movl	-12(%ebp), %eax	sall	$4, %eax	addl	$40, %eax	movl	%eax, %ecx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	movl	%ecx, _task+28(%eax)	movl	-12(%ebp), %edx	movl	-12(%ebp), %eax	sall	$4, %eax	addl	$32, %eax	movl	%eax, %ecx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	movl	%ecx, _task+32(%eax)	movl	__ldt0, %ecx	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	addl	$32, %eax	addl	$_task, %eax	addl	$4, %eax	subl	$4, %esp	pushl	$32	pushl	%ecx	pushl	%eax	call	_memcopy	addl	$16, %esp	movl	__tss0, %ecx	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	addl	$64, %eax	addl	$_task, %eax	addl	$4, %eax	subl	$4, %esp	pushl	$104	pushl	%ecx	pushl	%eax	call	_memcopy	addl	$16, %esp	movl	-12(%ebp), %edx	movl	8(%ebp), %ecx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	movl	%ecx, _task+100(%eax)	movl	-12(%ebp), %edx	movl	-12(%ebp), %eax	sall	$4, %eax	addl	$40, %eax	movl	%eax, %ecx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	movl	%ecx, _task+164(%eax)	movl	-12(%ebp), %ecx	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	addl	$176, %eax	addl	$_task, %eax	addl	$115, %eax	movl	%eax, %edx	movl	%ecx, %eax	sall	$4, %eax	addl	%ecx, %eax	sall	$3, %eax	addl	%ecx, %eax	sall	$2, %eax	movl	%edx, _task+72(%eax)	movl	-12(%ebp), %ecx	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	addl	$288, %eax	addl	$_task, %eax	addl	$4, %eax	addl	$255, %eax	movl	%eax, %edx	movl	%ecx, %eax	sall	$4, %eax	addl	%ecx, %eax	sall	$3, %eax	addl	%ecx, %eax	sall	$2, %eax	movl	%edx, _task+124(%eax)	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	addl	$32, %eax	addl	$_task, %eax	addl	$4, %eax	subl	$8, %esp	pushl	%eax	pushl	-12(%ebp)	call	_set_ldt_desc	addl	$16, %esp	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	addl	$64, %eax	addl	$_task, %eax	addl	$4, %eax	subl	$8, %esp	pushl	%eax	pushl	-12(%ebp)	call	_set_tss_desc	addl	$16, %esp	movl	_p_ready, %eax	testl	%eax, %eax	jne	L8	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	addl	$_task, %eax	movl	%eax, _p_ready	movl	_p_ready, %eax	movl	%eax, _p_head	movl	_p_ready, %edx	movl	_p_ready, %eax	movl	%eax, 172(%edx)	jmp	L10L8:	movl	_p_ready, %eax	movl	172(%eax), %eax	movl	%eax, -8(%ebp)	movl	_p_ready, %ecx	movl	-12(%ebp), %edx	movl	%edx, %eax	sall	$4, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$2, %eax	addl	$_task, %eax	movl	%eax, 172(%ecx)	movl	_p_ready, %eax	movl	172(%eax), %edx	movl	-8(%ebp), %eax	movl	%eax, 172(%edx)L10:	movl	-4(%ebp), %ebx	leave	ret.globl _do_timer_do_timer:	pushl	%ebp	movl	%esp, %ebp	subl	$8, %esp	movl	_p_ready, %eax	testl	%eax, %eax	je	L16	movl	_p_current, %eax	testl	%eax, %eax	je	L14	movl	_p_current, %eax	movl	24(%eax), %edx	decl	%edx	movl	%edx, 24(%eax)L14:	call	_scheduleL16:	leave	ret.globl _schedule_schedule:	pushl	%ebp	movl	%esp, %ebp	subl	$16, %esp	movl	_p_current, %eax	testl	%eax, %eax	je	L18	movl	_p_current, %eax	movl	24(%eax), %eax	testl	%eax, %eax	jns	L21L18:	movl	_p_current, %eax	movl	%eax, _p_previous	movl	_p_ready, %eax	movl	%eax, _p_current	movl	_p_ready, %eax	movl	172(%eax), %eax	movl	%eax, _p_ready	movl	_p_current, %eax	movl	$18, 24(%eax)	movl	_p_current, %eax	movl	32(%eax), %edx/APP	movl %edx,-4(%ebp)	ljmp *-8(%ebp)	/NO_APPL21:	leave	ret.comm _desc,1008.comm _task,1648.comm _process_id,16.comm _p_current,16.comm _p_previous,16.comm _p_ready,16.comm _p_head,16	.ident	"GCC: (GNU) 4.2.1"

⌨️ 快捷键说明

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