2012-05-01 11 views
7

Ben montaj talimatı aslındaAşağıdaki montaj talimatı addsd -8 (% rbp),% xmm0?

addsd -8(%rbp), %xmm0 

Ben SSE2 ile bir x86-64 makinede bir kayan nokta ekleme olduğunu biliyorum ne yaptığını anlamaya çalışıyorum. Ayrıca,% xmm0'ın bir kayıt olduğunu biliyorum. Ancak, emin değilim ne -8 (% rbp) ne anlama geliyor. Kılavuzlar biraz kafa karıştırıcı.

Temel olarak, soru -8 (% rbp), bir kayıttan (belki de son 8 bayt rbp) bir değer alması veya bellekten bir değer alması anlamına gelir (bir ofsette kayan nokta değeri) rbp'de bulunan adres -8'dir.

+2

İkinci tahmininiz doğru. '-8' baytındaki değere 'rbp' adresinden kaydırılıyor. – Mysticial

+0

Hey Mysticial, bunu kolayca açıklayan bir referansa işaret edebilir misiniz? – owagh

+0

AT & T sözdizimi saldırılarının tekrar karıştırılması. – harold

cevap

7

İkinci tahmininiz doğru. rbp no'lu adrese -8 bayt uzaklık değerine erişiyor.

& T Sözdiziminde varsayıldığında, bu talimat adresi rbp - 8 bir 8 bayt double yükler ve xmm0 alt yarısında değerine ekler.

+0

Bunu kolayca açıklayan bir referansa işaret edebilir misiniz? Assembly dil öğreticiler ve referansların çoğu umutsuzca gizlenmiş (ya da öyle hissediyorum ki, belki sadece ben) – owagh

+0

Şu anda bir tane bulmaya çalışıyorum. Fakat göreceli adresleme olayı temel tarafta biraz olabilir. – Mysticial

+3

İşte burada: http://en.wikibooks.org/wiki/X86_Assembly/GAS_Syntax – Mysticial