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!