I'm loading string in rcx and moving rcx + 8bytes and padding with zeros and store in %r8
%r8 will contain 0x72, 72 is the ascii for the letter "r". Using movq to move value of r8 into rdi which makes rdi 0x72. However on call puts i get sigsev, cannot access memory at 0x72. Why can't I do this?
.data
string: .asciz "Hello world!"
.global main
.text
main:
leaq string, %rcx
movq $4, %rax
movzbq 4(%rcx,%rax,1), %r8
movq %r8, %rdi
call puts