Ошибка сегментирования NASM
Делал подпрограмму для NASM, которая должна была считать длину строки ну и собственно выводить её. Код взял из видео, но у меня ошибка. Код такой:
_strlen:
push rdx
xor rdx,rdx
_strlen_loop_start:
cmp [rax+rdx] ,byte 0
je _strlen_loop_end
inc rdx
jmp _strlen_loop_start
_strlen_loop_end:
pop rdx
ret
_print:
push rax
push rcx
push rbx
push rdx
mov rcx, rax
call _strlen
mov rdx,rax
mov rax,4
mov rbx,1
int 80h
pop rdx
pop rcx
pop rbx
pop rax
ret
segment .text
global _start
segment .data
hell: db 'hell!', 0xA
_start:
mov rax,hell
call _print
mov rax,1
mov rbx,0
int 0x80
Не кидайте тапками, если ответ простой, я действительно не понимаю, что не так. P.S. NASM version 2.15.04, sys- Arch x86_64