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

📄 klib.s

📁 别人的根据linux0.11改的一个小的操作系统
💻 S
字号:
	.file	"klib.c"	.section .text.globl _printk_printk:	pushl	%ebp	movl	%esp, %ebp	subl	$8, %esp	jmp	L2L3:	movl	8(%ebp), %eax	movb	(%eax), %al	cmpb	$10, %al	jne	L4	movl	__scr_loc, %edx	movl	$-858993459, -4(%ebp)	movl	-4(%ebp), %eax	mull	%edx	movl	%edx, %eax	shrl	$7, %eax	leal	1(%eax), %edx	movl	%edx, %eax	sall	$2, %eax	addl	%edx, %eax	sall	$5, %eax	movl	%eax, __scr_loc	incl	8(%ebp)	jmp	L2L4:	movl	8(%ebp), %eax	movb	(%eax), %al	movsbl	%al,%eax	subl	$12, %esp	pushl	%eax	call	_putchark	addl	$16, %esp	incl	8(%ebp)L2:	movl	8(%ebp), %eax	movb	(%eax), %al	testb	%al, %al	jne	L3	leave	ret.globl _getStartTime_getStartTime:	pushl	%ebp	movl	%esp, %ebp	movl	8(%ebp), %eax	movl	20(%eax), %edx	movl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	sall	$3, %eax	addl	%edx, %eax	leal	0(,%eax,4), %edx	leal	(%eax,%edx), %ecx	movl	8(%ebp), %eax	movl	16(%eax), %eax	leal	(%eax,%eax), %edx	movl	%edx, %eax	sall	$4, %eax	subl	%edx, %eax	leal	(%ecx,%eax), %edx	movl	8(%ebp), %eax	movl	12(%eax), %eax	addl	%eax, %edx	movl	%edx, %eax	addl	%eax, %eax	addl	%edx, %eax	sall	$3, %eax	movl	%eax, %edx	movl	8(%ebp), %eax	movl	8(%eax), %eax	leal	(%edx,%eax), %eax	movl	%eax, %edx	sall	$4, %edx	movl	%edx, %eax	sall	$4, %eax	subl	%edx, %eax	movl	%eax, %edx	sall	$4, %edx	movl	%edx, %ecx	subl	%eax, %ecx	movl	8(%ebp), %eax	movl	4(%eax), %eax	leal	0(,%eax,4), %edx	movl	%edx, %eax	sall	$4, %eax	subl	%edx, %eax	leal	(%ecx,%eax), %edx	movl	8(%ebp), %eax	movl	(%eax), %eax	leal	(%edx,%eax), %eax	popl	%ebp	ret.globl _set_tss_desc_set_tss_desc:	pushl	%ebp	movl	%esp, %ebp	subl	$16, %esp	sall	8(%ebp)	movl	12(%ebp), %eax	movl	%eax, -4(%ebp)	movl	8(%ebp), %ecx	movl	__gdt, %eax	leal	32(%eax), %edx	movl	8(%ebp), %eax	sall	$3, %eax	leal	(%edx,%eax), %eax	movl	%eax, _desc(,%ecx,4)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %eax	movw	$103, (%eax)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %edx	movl	-4(%ebp), %eax	movw	%ax, 2(%edx)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %edx	movl	-4(%ebp), %eax	shrl	$16, %eax	movb	%al, 4(%edx)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %eax	movb	$-119, 5(%eax)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %eax	movb	$0, 6(%eax)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %edx	movl	-4(%ebp), %eax	shrl	$24, %eax	movb	%al, 7(%edx)	leave	ret.globl _set_ldt_desc_set_ldt_desc:	pushl	%ebp	movl	%esp, %ebp	subl	$16, %esp	sall	8(%ebp)	incl	8(%ebp)	movl	12(%ebp), %eax	movl	%eax, -4(%ebp)	movl	8(%ebp), %ecx	movl	__gdt, %eax	leal	32(%eax), %edx	movl	8(%ebp), %eax	sall	$3, %eax	leal	(%edx,%eax), %eax	movl	%eax, _desc(,%ecx,4)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %eax	movw	$31, (%eax)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %edx	movl	-4(%ebp), %eax	movw	%ax, 2(%edx)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %edx	movl	-4(%ebp), %eax	shrl	$16, %eax	movb	%al, 4(%edx)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %eax	movb	$-126, 5(%eax)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %eax	movb	$0, 6(%eax)	movl	8(%ebp), %eax	movl	_desc(,%eax,4), %edx	movl	-4(%ebp), %eax	shrl	$24, %eax	movb	%al, 7(%edx)	leave	ret.globl _set_ldt_set_ldt:	pushl	%ebp	movl	%esp, %ebp	subl	$16, %esp	movl	8(%ebp), %eax	movl	%eax, -8(%ebp)	movl	16(%ebp), %eax	movl	%eax, -4(%ebp)	movl	-8(%ebp), %eax	movw	$0, (%eax)	movl	-8(%ebp), %eax	movw	$0, 2(%eax)	movl	-8(%ebp), %eax	movb	$0, 4(%eax)	movl	-8(%ebp), %eax	movb	$0, 5(%eax)	movl	-8(%ebp), %eax	movb	$0, 6(%eax)	movl	-8(%ebp), %eax	movb	$0, 7(%eax)	movl	-8(%ebp), %edx	addl	$8, %edx	movl	12(%ebp), %eax	movw	%ax, (%edx)	movl	-8(%ebp), %edx	addl	$8, %edx	movl	-4(%ebp), %eax	movw	%ax, 2(%edx)	movl	-8(%ebp), %edx	addl	$8, %edx	movl	-4(%ebp), %eax	shrl	$16, %eax	movb	%al, 4(%edx)	movl	-8(%ebp), %eax	addl	$8, %eax	movb	$-6, 5(%eax)	movl	-8(%ebp), %eax	addl	$8, %eax	movb	$-64, 6(%eax)	movl	-8(%ebp), %edx	addl	$8, %edx	movl	-4(%ebp), %eax	shrl	$24, %eax	movb	%al, 7(%edx)	movl	-8(%ebp), %edx	addl	$16, %edx	movl	12(%ebp), %eax	movw	%ax, (%edx)	movl	-8(%ebp), %edx	addl	$16, %edx	movl	-4(%ebp), %eax	movw	%ax, 2(%edx)	movl	-8(%ebp), %edx	addl	$16, %edx	movl	-4(%ebp), %eax	shrl	$16, %eax	movb	%al, 4(%edx)	movl	-8(%ebp), %eax	addl	$16, %eax	movb	$-14, 5(%eax)	movl	-8(%ebp), %eax	addl	$16, %eax	movb	$-64, 6(%eax)	movl	-8(%ebp), %edx	addl	$16, %edx	movl	-4(%ebp), %eax	shrl	$24, %eax	movb	%al, 7(%edx)	movl	-8(%ebp), %eax	addl	$24, %eax	movw	$0, (%eax)	movl	-8(%ebp), %eax	addl	$24, %eax	movw	$0, 2(%eax)	movl	-8(%ebp), %eax	addl	$24, %eax	movb	$0, 4(%eax)	movl	-8(%ebp), %eax	addl	$24, %eax	movb	$0, 5(%eax)	movl	-8(%ebp), %eax	addl	$24, %eax	movb	$0, 6(%eax)	movl	-8(%ebp), %eax	addl	$24, %eax	movb	$0, 7(%eax)	leave	ret.globl _set_trap_set_trap:	pushl	%ebp	movl	%esp, %ebp	subl	$16, %esp	movl	12(%ebp), %eax	movl	%eax, -4(%ebp)	movl	__idt, %eax	movl	%eax, -8(%ebp)	movl	8(%ebp), %eax	sall	$3, %eax	addl	%eax, -8(%ebp)	movl	-4(%ebp), %eax	movl	%eax, %edx	movl	-8(%ebp), %eax	movw	%dx, (%eax)	movl	-8(%ebp), %eax	movw	$8, 2(%eax)	movl	-8(%ebp), %eax	movb	$0, 4(%eax)	movl	-8(%ebp), %eax	movb	$-114, 5(%eax)	movl	-4(%ebp), %eax	shrl	$16, %eax	movl	%eax, %edx	movl	-8(%ebp), %eax	movw	%dx, 6(%eax)	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 + -