So i am trying to make a simple assembly program, and i am getting a seg fault, the print function does indeed print out what i want, but than it crashes.
test.s:
.global _start
msg1:
        .string "Hello, World!\n"
msg2:
        .string "Goodbye, World !\n"
_start:
        PUSHQ   %rbp
        MOVQ    %rsp, %rbp
        MOVQ    $msg1, %rax
        CALL    print
        MOVQ    $msg2, %rax
        CALL    print
        POPQ    %rbp
        RET
# void print(char * x[%rax])
print:
print_init:
        PUSHQ   %rbp
        MOVQ    %rsp, %rbp
        SUBQ    $32,  %rsp
        MOVQ    %rax, -32(%rbp)
print_loop:
        MOVL    $1, %edx
        MOVL    -32(%rbp), %ecx
        CMPB    $0, (%ecx)
        JE      print_exit
        MOVL    $1,   %ebx
        MOVL    $4,   %eax
        INT     $0x80
        ADDQ    $1, -32(%rbp)
        JMP     print_loop
print_exit:
        POPQ    %rbp
        RET
thanks for helping guys!
