I am trying to write a "Hello World" program using stack memory.
section .text
global _start
_start:
mov al , 0x01
mov dil , al
push 0x0a646c72 ; text: "\nrld"
push 0x6f57206f ; text: "o Wo"
push 0x6c6c6548 ; text: "Hell"
mov rsi , rsp
mov dl , 0x0c
syscall
mov al , 0x3c
xor dil , dil
syscall
But it is only printing "Hello Wo".
I understand stack memory follow the LIFO method.
There is no change in result, if I move this hex codes(Hello World\n) into three registers such as -
mov r10 , 0x0a646c72
push r10
mov r11 , 0x6f57206f
push r11
mov r12 , 0x6c6c6548
push r12
So, why this first push "rld\n" is not printing?