Ошибка сегментирования 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


Ответы (0 шт):