.arch armv8-a .file "shell.c" .text .section .rodata .align 3 .LC0: .string "smid_sh# " .text .align 2 .global print_shell .type print_shell, %function print_shell: .LFB0: .cfi_startproc stp x29, x30, [sp, -16]! .cfi_def_cfa_offset 16 .cfi_offset 29, -16 .cfi_offset 30, -8 mov x29, sp adrp x0, .LC0 add x0, x0, :lo12:.LC0 bl printf nop ldp x29, x30, [sp], 16 .cfi_restore 30 .cfi_restore 29 .cfi_def_cfa_offset 0 ret .cfi_endproc .LFE0: .size print_shell, .-print_shell .section .rodata .align 3 .LC1: .string "Shell input successful\n\007" .text .align 2 .global test .type test, %function test: .LFB1: .cfi_startproc stp x29, x30, [sp, -16]! .cfi_def_cfa_offset 16 .cfi_offset 29, -16 .cfi_offset 30, -8 mov x29, sp adrp x0, .LC1 add x0, x0, :lo12:.LC1 bl printf nop ldp x29, x30, [sp], 16 .cfi_restore 30 .cfi_restore 29 .cfi_def_cfa_offset 0 ret .cfi_endproc .LFE1: .size test, .-test .section .rodata .align 3 .LC2: .string "Exiting" .text .align 2 .global do_exit .type do_exit, %function do_exit: .LFB2: .cfi_startproc stp x29, x30, [sp, -16]! .cfi_def_cfa_offset 16 .cfi_offset 29, -16 .cfi_offset 30, -8 mov x29, sp adrp x0, .LC2 add x0, x0, :lo12:.LC2 bl puts adrp x0, :got:state;ldr x0, [x0, :got_lo12:state] str wzr, [x0] nop ldp x29, x30, [sp], 16 .cfi_restore 30 .cfi_restore 29 .cfi_def_cfa_offset 0 ret .cfi_endproc .LFE2: .size do_exit, .-do_exit .section .rodata .align 3 .LC3: .string "\n" .text .align 2 .global get_input .type get_input, %function get_input: .LFB3: .cfi_startproc stp x29, x30, [sp, -16]! .cfi_def_cfa_offset 16 .cfi_offset 29, -16 .cfi_offset 30, -8 mov x29, sp adrp x0, :got:stdin;ldr x0, [x0, :got_lo12:stdin] ldr x0, [x0] mov x2, x0 mov w1, 100 adrp x0, :got:input;ldr x0, [x0, :got_lo12:input] bl fgets cmp x0, 0 bne .L5 adrp x0, :got:input;ldr x0, [x0, :got_lo12:input] strb wzr, [x0] b .L4 .L5: adrp x0, .LC3 add x1, x0, :lo12:.LC3 adrp x0, :got:input;ldr x0, [x0, :got_lo12:input] bl strcspn mov x1, x0 adrp x0, :got:input;ldr x0, [x0, :got_lo12:input] strb wzr, [x0, x1] .L4: ldp x29, x30, [sp], 16 .cfi_restore 30 .cfi_restore 29 .cfi_def_cfa_offset 0 ret .cfi_endproc .LFE3: .size get_input, .-get_input .section .rodata .align 3 .LC4: .string "\033[H\033[2J\033[3J" .text .align 2 .global clear_screen .type clear_screen, %function clear_screen: .LFB4: .cfi_startproc stp x29, x30, [sp, -16]! .cfi_def_cfa_offset 16 .cfi_offset 29, -16 .cfi_offset 30, -8 mov x29, sp adrp x0, .LC4 add x0, x0, :lo12:.LC4 bl printf nop ldp x29, x30, [sp], 16 .cfi_restore 30 .cfi_restore 29 .cfi_def_cfa_offset 0 ret .cfi_endproc .LFE4: .size clear_screen, .-clear_screen .ident "GCC: (Debian 14.2.0-19) 14.2.0" .section .note.GNU-stack,"",@progbits