I want to write an assembly code that prints "Hello, World!", then reads input from user and then prints that input. Getting input is correct, but i can not print it (Or prints the old value). Code :
.global _start
.intel_syntax noprefix
_start:
# Write
mov rax, 1 # syscall number for sys_write
mov rdi, 1 # file descriptor 1 (stdout)
lea rsi, load_msg # pointer to the message to be written
mov rdx, 14 # message length
syscall
# Read
mov rax, 0 # syscall number for sys_read
mov rdi, 0 # file descriptor 0 (stdin)
lea rsi, read_msg # pointer to the buffer to store user input
mov rdx, 255 # maximum number of bytes to read
syscall
# Write
mov rax, 1 # syscall number for sys_write
mov rdi, 1 # file descriptor 1 (stdout)
mov rdx, rax
syscall # writing the user input to the standard output
# Exit
mov rax, 60 # syscall number for sys_exit
mov rdi, 0 # exit code 0
syscall
load_msg:
.asciz "Hello, World!\n"
read_msg:
.space 256