Я пытаюсь переместить данные из ячейки памяти в другую ячейку памяти, а затем распечатать результат.Но все, что я получаю, это какое-то мусорное значение, и я не могу понять, почему.Соответствующий код ниже:
.bss
code: .skip 1000000
.data
smth: .asciz "somerandomtext"
format_str: .asciz "Contents of code:\n%s"
.text
main:
pushq %rbp
movq %rsp, %rbp
movq $smth , %rdi # move address of smth in rdi
movq $code , %rax # move address of code in rax
movq %rdi , (%rax) # move contents of rdi to address stored in rax ??
movq $0 , %rax
movq $code , %rsi
movq $format_str , %rdi
call printf
movq %rbp, %rsp
popq %rbp
Я знаю, что мой выбор регистров не идеален, я столкнулся с этой проблемой, работая над чем-то другим.