This repository has been archived on 2024-01-18. You can view files and clone it, but cannot push or open issues or pull requests.
OS_Project/Part4/10_scheduler/hello.s

872 lines
12 KiB
ArmAsm
Raw Permalink Normal View History

2023-11-29 19:19:51 +00:00
.file "hello.c"
.text
.Ltext0:
.comm idt,2048,32
.comm idt_reg,6,4
.section .rodata
.LC0:
.string "Process "
.align 4
.LC1:
.string "has been entered. Hey there.\n"
.text
.globl start_
.type start_, @function
start_:
.LFB0:
.file 1 "hello.c"
.loc 1 18 0
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
subl $40, %esp
.loc 1 19 0
movl $0, -12(%ebp)
.loc 1 21 0
subl $12, %esp
pushl $.LC0
call kprint
addl $16, %esp
.loc 1 22 0
subl $8, %esp
leal -28(%ebp), %eax
pushl %eax
pushl -12(%ebp)
call hex_to_ascii
addl $16, %esp
.loc 1 23 0
subl $12, %esp
leal -28(%ebp), %eax
pushl %eax
call kprint
addl $16, %esp
.loc 1 24 0
subl $12, %esp
pushl $.LC1
call kprint
addl $16, %esp
.loc 1 25 0
nop
.loc 1 26 0
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE0:
.size start_, .-start_
.section .rodata
.LC2:
.string "END"
.LC3:
.string "Stopping the CPU. Bye!\n"
.LC4:
.string "ADD"
.LC5:
.string "ADDED: "
.LC6:
.string " id: "
.LC7:
.string "ZOO"
.LC8:
.string "ZOO.\n"
.LC9:
.string "You said: "
.LC10:
.string "\n> "
.text
.globl user_input
.type user_input, @function
user_input:
.LFB1:
.loc 1 28 0
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
subl $40, %esp
.loc 1 29 0
subl $8, %esp
pushl $.LC2
pushl 8(%ebp)
call strcmp
addl $16, %esp
testl %eax, %eax
jne .L4
.loc 1 30 0
subl $12, %esp
pushl $.LC3
call kprint
addl $16, %esp
.loc 1 31 0
#APP
# 31 "hello.c" 1
hlt
# 0 "" 2
#NO_APP
jmp .L5
.L4:
.loc 1 32 0
subl $8, %esp
pushl $.LC4
pushl 8(%ebp)
call strcmp
addl $16, %esp
testl %eax, %eax
jne .L6
.LBB2:
.loc 1 33 0
movl $16, -12(%ebp)
addl $4, -12(%ebp)
.loc 1 34 0
movl $0, -16(%ebp)
.loc 1 35 0
subl $4, %esp
leal -16(%ebp), %eax
pushl %eax
pushl $0
pushl $20
call kmalloc
addl $16, %esp
.loc 1 36 0
movl -16(%ebp), %edx
movl global_id, %eax
leal 1(%eax), %ecx
movl %ecx, global_id
movl %eax, (%edx)
.loc 1 37 0
movl -16(%ebp), %eax
movl global_id, %edx
imull $100, %edx, %edx
movl %edx, 4(%eax)
.loc 1 38 0
movl -16(%ebp), %ecx
movl global_id, %edx
movl %edx, %eax
sall $2, %eax
addl %edx, %eax
addl %eax, %eax
movl %eax, 8(%ecx)
.loc 1 39 0
movl -16(%ebp), %eax
movl $0, 12(%eax)
.loc 1 40 0
movl -16(%ebp), %eax
movl $0, 16(%eax)
.loc 1 41 0
subl $12, %esp
pushl $.LC5
call kprint
addl $16, %esp
.loc 1 43 0
movl -16(%ebp), %eax
movl %eax, %edx
subl $8, %esp
leal -32(%ebp), %eax
pushl %eax
pushl %edx
call hex_to_ascii
addl $16, %esp
.loc 1 44 0
subl $12, %esp
leal -32(%ebp), %eax
pushl %eax
call kprint
addl $16, %esp
.loc 1 45 0
subl $12, %esp
pushl $.LC6
call kprint
addl $16, %esp
.loc 1 46 0
movl -16(%ebp), %eax
movl (%eax), %eax
movl %eax, %edx
subl $8, %esp
leal -32(%ebp), %eax
pushl %eax
pushl %edx
call hex_to_ascii
addl $16, %esp
.loc 1 47 0
subl $12, %esp
leal -32(%ebp), %eax
pushl %eax
call kprint
addl $16, %esp
.LBE2:
jmp .L5
.L6:
.loc 1 48 0
subl $8, %esp
pushl $.LC7
pushl 8(%ebp)
call strcmp
addl $16, %esp
testl %eax, %eax
jne .L5
.loc 1 49 0
subl $12, %esp
pushl $.LC8
call kprint
addl $16, %esp
.L5:
.loc 1 52 0
subl $12, %esp
pushl $.LC9
call kprint
addl $16, %esp
.loc 1 53 0
subl $12, %esp
pushl 8(%ebp)
call kprint
addl $16, %esp
.loc 1 54 0
subl $12, %esp
pushl $.LC10
call kprint
addl $16, %esp
.loc 1 55 0
nop
leave
.cfi_restore 5
.cfi_def_cfa 4, 4
ret
.cfi_endproc
.LFE1:
.size user_input, .-user_input
.Letext0:
.file 2 "./cpu/types.h"
.file 3 "./cpu/idt.h"
.file 4 "./libc/mem.h"
.file 5 "./libc/globals.h"
.section .debug_info,"",@progbits
.Ldebug_info0:
.long 0x22b
.value 0x4
.long .Ldebug_abbrev0
.byte 0x4
.uleb128 0x1
.long .LASF22
.byte 0xc
.long .LASF23
.long .LASF24
.long .Ltext0
.long .Letext0-.Ltext0
.long .Ldebug_line0
.uleb128 0x2
.string "u32"
.byte 0x2
.byte 0x6
.long 0x30
.uleb128 0x3
.byte 0x4
.byte 0x7
.long .LASF0
.uleb128 0x4
.byte 0x4
.byte 0x5
.string "int"
.uleb128 0x2
.string "u16"
.byte 0x2
.byte 0x8
.long 0x49
.uleb128 0x3
.byte 0x2
.byte 0x7
.long .LASF1
.uleb128 0x3
.byte 0x2
.byte 0x5
.long .LASF2
.uleb128 0x2
.string "u8"
.byte 0x2
.byte 0xa
.long 0x61
.uleb128 0x3
.byte 0x1
.byte 0x8
.long .LASF3
.uleb128 0x3
.byte 0x1
.byte 0x6
.long .LASF4
.uleb128 0x5
.byte 0x8
.byte 0x3
.byte 0xa
.long 0xb4
.uleb128 0x6
.long .LASF5
.byte 0x3
.byte 0xb
.long 0x3e
.byte 0
.uleb128 0x7
.string "sel"
.byte 0x3
.byte 0xc
.long 0x3e
.byte 0x2
.uleb128 0x6
.long .LASF6
.byte 0x3
.byte 0xd
.long 0x57
.byte 0x4
.uleb128 0x6
.long .LASF7
.byte 0x3
.byte 0x13
.long 0x57
.byte 0x5
.uleb128 0x6
.long .LASF8
.byte 0x3
.byte 0x14
.long 0x3e
.byte 0x6
.byte 0
.uleb128 0x8
.long .LASF9
.byte 0x3
.byte 0x15
.long 0x6f
.uleb128 0x5
.byte 0x6
.byte 0x3
.byte 0x19
.long 0xe0
.uleb128 0x6
.long .LASF10
.byte 0x3
.byte 0x1a
.long 0x3e
.byte 0
.uleb128 0x6
.long .LASF11
.byte 0x3
.byte 0x1b
.long 0x25
.byte 0x2
.byte 0
.uleb128 0x8
.long .LASF12
.byte 0x3
.byte 0x1c
.long 0xbf
.uleb128 0x9
.long .LASF25
.byte 0x14
.byte 0x4
.byte 0x9
.long 0x133
.uleb128 0x7
.string "id"
.byte 0x4
.byte 0xa
.long 0x25
.byte 0
.uleb128 0x6
.long .LASF11
.byte 0x4
.byte 0xb
.long 0x25
.byte 0x4
.uleb128 0x6
.long .LASF13
.byte 0x4
.byte 0xc
.long 0x25
.byte 0x8
.uleb128 0x6
.long .LASF14
.byte 0x4
.byte 0xd
.long 0x133
.byte 0xc
.uleb128 0x6
.long .LASF15
.byte 0x4
.byte 0xe
.long 0x133
.byte 0x10
.byte 0
.uleb128 0xa
.byte 0x4
.long 0xeb
.uleb128 0x8
.long .LASF16
.byte 0x4
.byte 0xf
.long 0xeb
.uleb128 0xb
.long .LASF18
.byte 0x1
.byte 0x11
.long .LFB0
.long .LFE0-.LFB0
.uleb128 0x1
.byte 0x9c
.long 0x174
.uleb128 0xc
.string "pid"
.byte 0x1
.byte 0x13
.long 0x37
.uleb128 0x2
.byte 0x91
.sleb128 -20
.uleb128 0xc
.string "c"
.byte 0x1
.byte 0x14
.long 0x174
.uleb128 0x2
.byte 0x91
.sleb128 -36
.byte 0
.uleb128 0xd
.long 0x68
.long 0x184
.uleb128 0xe
.long 0x184
.byte 0xf
.byte 0
.uleb128 0x3
.byte 0x4
.byte 0x7
.long .LASF17
.uleb128 0xb
.long .LASF19
.byte 0x1
.byte 0x1c
.long .LFB1
.long .LFE1-.LFB1
.uleb128 0x1
.byte 0x9c
.long 0x1df
.uleb128 0xf
.long .LASF26
.byte 0x1
.byte 0x1c
.long 0x1df
.uleb128 0x2
.byte 0x91
.sleb128 0
.uleb128 0x10
.long .LBB2
.long .LBE2-.LBB2
.uleb128 0xc
.string "n0"
.byte 0x1
.byte 0x21
.long 0x1e5
.uleb128 0x2
.byte 0x91
.sleb128 -20
.uleb128 0xc
.string "n1"
.byte 0x1
.byte 0x22
.long 0x1eb
.uleb128 0x2
.byte 0x91
.sleb128 -24
.uleb128 0xc
.string "c"
.byte 0x1
.byte 0x2a
.long 0x174
.uleb128 0x2
.byte 0x91
.sleb128 -40
.byte 0
.byte 0
.uleb128 0xa
.byte 0x4
.long 0x68
.uleb128 0xa
.byte 0x4
.long 0x25
.uleb128 0xa
.byte 0x4
.long 0x139
.uleb128 0x11
.long .LASF20
.byte 0x5
.byte 0x6
.long 0x25
.uleb128 0xd
.long 0xb4
.long 0x20c
.uleb128 0xe
.long 0x184
.byte 0xff
.byte 0
.uleb128 0x12
.string "idt"
.byte 0x3
.byte 0x1f
.long 0x1fc
.uleb128 0x5
.byte 0x3
.long idt
.uleb128 0x13
.long .LASF21
.byte 0x3
.byte 0x20
.long 0xe0
.uleb128 0x5
.byte 0x3
.long idt_reg
.byte 0
.section .debug_abbrev,"",@progbits
.Ldebug_abbrev0:
.uleb128 0x1
.uleb128 0x11
.byte 0x1
.uleb128 0x25
.uleb128 0xe
.uleb128 0x13
.uleb128 0xb
.uleb128 0x3
.uleb128 0xe
.uleb128 0x1b
.uleb128 0xe
.uleb128 0x11
.uleb128 0x1
.uleb128 0x12
.uleb128 0x6
.uleb128 0x10
.uleb128 0x17
.byte 0
.byte 0
.uleb128 0x2
.uleb128 0x16
.byte 0
.uleb128 0x3
.uleb128 0x8
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x49
.uleb128 0x13
.byte 0
.byte 0
.uleb128 0x3
.uleb128 0x24
.byte 0
.uleb128 0xb
.uleb128 0xb
.uleb128 0x3e
.uleb128 0xb
.uleb128 0x3
.uleb128 0xe
.byte 0
.byte 0
.uleb128 0x4
.uleb128 0x24
.byte 0
.uleb128 0xb
.uleb128 0xb
.uleb128 0x3e
.uleb128 0xb
.uleb128 0x3
.uleb128 0x8
.byte 0
.byte 0
.uleb128 0x5
.uleb128 0x13
.byte 0x1
.uleb128 0xb
.uleb128 0xb
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x1
.uleb128 0x13
.byte 0
.byte 0
.uleb128 0x6
.uleb128 0xd
.byte 0
.uleb128 0x3
.uleb128 0xe
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x49
.uleb128 0x13
.uleb128 0x38
.uleb128 0xb
.byte 0
.byte 0
.uleb128 0x7
.uleb128 0xd
.byte 0
.uleb128 0x3
.uleb128 0x8
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x49
.uleb128 0x13
.uleb128 0x38
.uleb128 0xb
.byte 0
.byte 0
.uleb128 0x8
.uleb128 0x16
.byte 0
.uleb128 0x3
.uleb128 0xe
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x49
.uleb128 0x13
.byte 0
.byte 0
.uleb128 0x9
.uleb128 0x13
.byte 0x1
.uleb128 0x3
.uleb128 0xe
.uleb128 0xb
.uleb128 0xb
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x1
.uleb128 0x13
.byte 0
.byte 0
.uleb128 0xa
.uleb128 0xf
.byte 0
.uleb128 0xb
.uleb128 0xb
.uleb128 0x49
.uleb128 0x13
.byte 0
.byte 0
.uleb128 0xb
.uleb128 0x2e
.byte 0x1
.uleb128 0x3f
.uleb128 0x19
.uleb128 0x3
.uleb128 0xe
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x27
.uleb128 0x19
.uleb128 0x11
.uleb128 0x1
.uleb128 0x12
.uleb128 0x6
.uleb128 0x40
.uleb128 0x18
.uleb128 0x2116
.uleb128 0x19
.uleb128 0x1
.uleb128 0x13
.byte 0
.byte 0
.uleb128 0xc
.uleb128 0x34
.byte 0
.uleb128 0x3
.uleb128 0x8
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x49
.uleb128 0x13
.uleb128 0x2
.uleb128 0x18
.byte 0
.byte 0
.uleb128 0xd
.uleb128 0x1
.byte 0x1
.uleb128 0x49
.uleb128 0x13
.uleb128 0x1
.uleb128 0x13
.byte 0
.byte 0
.uleb128 0xe
.uleb128 0x21
.byte 0
.uleb128 0x49
.uleb128 0x13
.uleb128 0x2f
.uleb128 0xb
.byte 0
.byte 0
.uleb128 0xf
.uleb128 0x5
.byte 0
.uleb128 0x3
.uleb128 0xe
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x49
.uleb128 0x13
.uleb128 0x2
.uleb128 0x18
.byte 0
.byte 0
.uleb128 0x10
.uleb128 0xb
.byte 0x1
.uleb128 0x11
.uleb128 0x1
.uleb128 0x12
.uleb128 0x6
.byte 0
.byte 0
.uleb128 0x11
.uleb128 0x34
.byte 0
.uleb128 0x3
.uleb128 0xe
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x49
.uleb128 0x13
.uleb128 0x3f
.uleb128 0x19
.uleb128 0x3c
.uleb128 0x19
.byte 0
.byte 0
.uleb128 0x12
.uleb128 0x34
.byte 0
.uleb128 0x3
.uleb128 0x8
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x49
.uleb128 0x13
.uleb128 0x3f
.uleb128 0x19
.uleb128 0x2
.uleb128 0x18
.byte 0
.byte 0
.uleb128 0x13
.uleb128 0x34
.byte 0
.uleb128 0x3
.uleb128 0xe
.uleb128 0x3a
.uleb128 0xb
.uleb128 0x3b
.uleb128 0xb
.uleb128 0x49
.uleb128 0x13
.uleb128 0x3f
.uleb128 0x19
.uleb128 0x2
.uleb128 0x18
.byte 0
.byte 0
.byte 0
.section .debug_aranges,"",@progbits
.long 0x1c
.value 0x2
.long .Ldebug_info0
.byte 0x4
.byte 0
.value 0
.value 0
.long .Ltext0
.long .Letext0-.Ltext0
.long 0
.long 0
.section .debug_line,"",@progbits
.Ldebug_line0:
.section .debug_str,"MS",@progbits,1
.LASF5:
.string "low_offset"
.LASF9:
.string "idt_gate_t"
.LASF14:
.string "next"
.LASF23:
.string "hello.c"
.LASF21:
.string "idt_reg"
.LASF19:
.string "user_input"
.LASF15:
.string "previous"
.LASF3:
.string "unsigned char"
.LASF11:
.string "base"
.LASF1:
.string "short unsigned int"
.LASF25:
.string "_node"
.LASF6:
.string "always0"
.LASF0:
.string "unsigned int"
.LASF7:
.string "flags"
.LASF26:
.string "input"
.LASF4:
.string "char"
.LASF22:
.string "GNU C11 5.4.0 20160609 -m32 -mtune=generic -march=i686 -g -fno-pie -ffreestanding -fno-builtin -fno-stack-protector"
.LASF10:
.string "limit"
.LASF17:
.string "sizetype"
.LASF24:
.string "/home/os/OS_Project/Part4/10_scheduler"
.LASF20:
.string "global_id"
.LASF2:
.string "short int"
.LASF18:
.string "start_"
.LASF16:
.string "node"
.LASF8:
.string "high_offset"
.LASF12:
.string "idt_register_t"
.LASF13:
.string "size"
.ident "GCC: (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609"
.section .note.GNU-stack,"",@progbits