我正在尝试将数据从一个存储位置移动到另一个存储位置,然后打印结果。但是我得到的只是一些垃圾值,我不知道为什么。 相关代码如下:
.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
我知道我对寄存器的选择并不理想,我在做其他事情时遇到了这个问题。