Özür dilerim, x86 montajında yepyeni ve genel olarak montaj yapıyorum.AT & T sözdiziminin (% eax) anlamı nedir?
addl %edx,(%eax)
% eax bazı tamsayıya bir işaretçi tutan bir kayıt geçerli:
Benim soru ben böyle bir şey olması. Diyelim ki buna *xp = *xp + %edx
diyoruz? (%edx
bir tamsayıdır)
Yalnızca eklentinin sonuçları depolayacağı yerde kafam karıştı. %eax
bir int için bir işaretçi ise, o zaman bu int gerçek değeri (%eax)
olmalıdır. addl
%edx+(%eax)
sonucunu *xp
içinde saklar mı? Bunu bana açıklayacak birini gerçekten çok isterim!
Gerçekten herhangi bir yardım için minnettarım!
+1 güzel basit bir yanıt. [Farklı adresleme modlarını adlandırmak istiyorsanız] –
'(% eax)', “register dolaylı” dır (https://stackoverflow.com/questions/46257018/do-terms-like-direct-indirect-addressing-mode- fiilen var olan-in-the-intel-x86-man). "Bellek dolaylı" adresleme, CPU bir adresi bellekten yüklediğinde ve sonra da * (x86, bellek dolaylı adreslemeyi desteklemez) dereferences'tır. https://en.wikipedia.org/wiki/Addressing_mode#Memory_indirect –