Функция вывода не выводит символы, Ассемблер

Я новичек в ассемблере, пытаюсь написать функцию, выводящую символы на экран на виндовс:

_print:
    ; rdi - stroke
    ; ebx - lenght
    sub  rsp, 40
    mov  rcx, -11
    call GetStdHandle
    mov  rcx, rax
    mov  rdx, rdi
    mov  r8d, ebx
    xor  r9, r9
    mov  qword [rsp + 32], 0
    call WriteFile
    add  rsp, 40
    ret

когда я в нее передавал напрямую переменные:

mov rdx, message
mov r8d, lenght

все работало, но когда я решил делать это через регистры, функция не выводила на экран ничего. Может быть проблема в выбранный регистрах?

В дополнение скажу что убрав ret функция стала бесконечно выводить строку


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