写入程序集x86-64 AT&T中的内存位置

时间:2018-10-10 16:44:57

标签: assembly x86-64 att

我正在尝试将数据从一个存储位置移动到另一个存储位置,然后打印结果。但是我得到的只是一些垃圾值,我不知道为什么。 相关代码如下:

.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

我知道我对寄存器的选择并不理想,我在做其他事情时遇到了这个问题。

0 个答案:

没有答案