0
我正在使用32位Linux系统,我无法理解如何将值存入内存。 这是一个例子:ASM x86 - 将值移入内存
str: .asciz "AAA"
p: .long 0
.text
.globl main
main:
movl $str, p #Save the address of str into p (?)
我知道,我能做的movl $str, %eax
存储EAX寄存器内的STR地址,但因为我收到分段错误,我不能做p
同样的事情。
我也试过这种替代,但结果始终是一个分段错误:
main:
call self
self:
pop %ebp
movl $str, (p-self) (%ebp)
有人能向我解释如何以正确的方式使用mov
? 我也想知道是否可以在编译时将str地址存储到p中。