📄 klib.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 + -