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中。