1 %line 1+1 cmdl_callee.asm 2 3 4 5 [section .data] 6 7 8 LF equ 10 9 NULL equ 0 10 11 12 13 14 STDOUT equ 1 15 16 17 SYS_write equ 1 18 19 20 21 22 23 24 25 26 27 28 29 [section .text] 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 [global print_string] 80 print_string: 81 00000000 55 push rbp 82 00000001 4889E5 mov rbp, rsp 83 00000004 53 push rbx 84 85 86 00000005 4889FB mov rbx, rdi 87 00000008 48C7C200000000 mov rdx, 0 88 str_count_loop: 89 0000000F 803B00 cmp byte[rbx], NULL 90 00000012 7406 je str_count_done 91 00000014 48FFC2 inc rdx 92 00000017 48FFC3 inc rbx 93 0000001A EBF1 jmp str_count_loop 94 str_count_done: 95 0000001C 4883FA00 cmp rdx, 0 96 00000020 740F je FINITO2 97 98 99 00000022 48C7C001000000 mov rax, SYS_write 100 00000029 4889FE mov rsi, rdi 101 0000002C BF01000000 mov edi, STDOUT 102 103 00000031 0F05 syscall 104 105 106 107 FINITO2: 108 00000033 5B pop rbx 109 00000034 5D pop rbp 110 00000035 C3 ret