У меня есть программа на ассемблере, которая должна написать «Как тебя зовут?», Затем дождаться ввода данных пользователем и затем напечатать «Привет». Это моя программа (Ma c, nasm):
section .data
question db "What's your name?"
answer db "Hello, "
ln db 10
section .bss
name resb 16
section .text
global start
start:
mov rsi, question
mov rdi, 17
call print
call getName
mov rsi, answer
mov rdi, 7
call print
mov rsi, ln
mov rdi, 1
call print
mov rax, 0x02000001
mov rdi, 0
syscall
print:
mov rax, 0x02000004
mov rdi, 1
syscall
ret
getName:
mov rax, 0x02000003
mov rdi, 0
mov rsi, name
mov rdx, 16
syscall
ret
Но эта программа пишет «Как тебя зовут? Привет», и только тогда ждет ввода пользователя. Почему он не ждет ввода, прежде чем пишет «Hello»?