Birisi aşağıdaki kodun ne yaptığını açıklayabilir mi?bu x86 montaj talimat ne yapar (addsd xmm0, ds: __ xmm 41f00000000000000000000000000000 @ [edx * 8])?
addsd xmm0, ds:[email protected][edx*8]
bazı değer xmm0 kayıt yüzer eklenir düşündüm ama 41f00000000000000000000000000000 sabit @ __xmm anlamı nedir? Bu konuda okuyabileceğim bir belge var mı?
İşte anlamaya çalışıyorum kod tam parçası var:
cvtsi2sd xmm0, [ebp+var_2C8]
mov edx, [ebp+var_2C8]
shr edx, 1Fh
addsd xmm0, ds:[email protected][edx*8]
ebp + var_2C8 işaretsiz tamsayı değeridir.
- ebp + var_2C8 yüzer dönüştürülür ve
- ebp kayıt xmm0 taşınan + var_2C8 bu değişen türetilen
- şey 31 bit ile kaydırılır EDX ve sağa doğru hareket edilir xmm0 eklenir. Tam olarak xmm0 eklenir Ne
? Bu hesaplamanın olası bir amacı var mı?
Güncelleştirme.
İşte bu kodu için çiğ sökme var:
cvtsi2sd xmm0,dword ptr [ebp-2C8h]
mov edx,dword ptr [ebp-2C8h]
shr edx,1Fh
addsd xmm0,mmword ptr [edx*8+2685CC0h]
sabitler diziden bazı çift değer gibi xmm0 eklenir benziyor ...
Bir arama tablosu veya dizi bu. Aptal sabit, sadece sökücünüzün bir ürünüdür (ayrıca bir sembol de olabilir), gerçek adresi görmek için ham sökmeye bakın. – Jester