26
你將不得不原諒我,我是x86組裝的新手,並且一般都是組裝。AT&T語法中(%eax)的含義?
所以我的問題是,我有類似:
addl %edx,(%eax)
%EAX是一種具有指向某個整數寄存器。我們稱之爲xp
這是否意味着它說:*xp = *xp + %edx
? (%edx
是一個整數)
我只是困惑在哪裏addl將存儲結果。如果%eax
是一個指向int的指針,那麼(%eax)
應該是該int的實際值。那麼addl
將%edx+(%eax)
的結果存入*xp
?我真的很想有人向我解釋這個!
我真的很感謝任何幫助!
+1不錯的簡單答案。 – 2009-10-24 23:48:39
'(%eax)'是「寄存器間接」,如果你想[命名不同的尋址模式](https://stackoverflow.com/questions/46257018/do-terms-like-direct-indirect-addressing-mode-實際存在於intel-x86-man中)。 「內存間接」尋址是CPU從內存裝入地址,然後取消引用*(x86不支持內存間接尋址)。 https://en.wikipedia.org/wiki/Addressing_mode#Memory_indirect – 2017-09-18 03:56:03