1 %line 1+1 cmdl_caller.asm 2 3 4 5 [section .data] 6 7 8 LF equ 10 9 NULL equ 0 10 TRUE equ 1 11 FALSE equ 0 12 EXIT_SUCCESS equ 0 13 STDIN equ 0 14 STDOUT equ 1 15 STDERR equ 2 16 SYS_read equ 0 17 SYS_write equ 1 18 SYS_open equ 2 19 SYS_close equ 3 20 SYS_fork equ 57 21 SYS_exit equ 60 22 SYS_creat equ 85 23 SYS_time equ 201 24 25 26 27 00000000 0A00 new_line db LF, NULL 28 29 [extern print_string] 30 [section .text] 31 [global main] 32 main: 33 34 35 36 37 00000000 4989FC mov r12, rdi 38 00000003 4989F5 mov r13, rsi 39 40 41 42 43 44 print_arguments: 45 00000006 48C7C7[00000000] mov rdi, new_line 46 0000000D E8(F6FFFFFF) call print_string 47 48 00000012 48C7C300000000 mov rbx, 0 49 50 print_loop: 51 00000019 498B7CDD00 mov rdi, qword[r13+rbx*8] 52 0000001E E8(F6FFFFFF) call print_string 53 54 00000023 48C7C7[00000000] mov rdi, new_line 55 0000002A E8(F6FFFFFF) call print_string 56 57 0000002F 48FFC3 inc rbx 58 00000032 4C39E3 cmp rbx, r12 59 00000035 7CE0 jl print_loop 60 61 FINITO: 62 00000037 48C7C03C000000 mov rax, SYS_exit 63 0000003E 48C7C700000000 mov rdi, EXIT_SUCCESS 64 00000045 0F05 syscall 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111