'In LEA eğitimin amacı ne?
Benim için, sadece bir korkak MOV gibi görünüyor. Amacı nedir ve ne zaman kullanmalıyım?
CEVAP
Diğerleri belirttiği gibi, LEA (load etkili adresi) genellikle "bazı hesaplamaları yapmak için, ama asıl amacı o değil." hilesi olarak kullanılır 86 komut seti Pascal ve C gibi yüksek seviyeli dilleri desteklemek için tasarlanmıştır, diziler-özellikle değer vermez ya da küçük yapılar dizileri-yaygındır. Örneğin, koordinatları: bir yapı temsil eden (x, y) düşünün
struct Point
{
int xcoord;
int ycoord;
};
Şimdi hayal gibi bir ifade:
int y = points[i].ycoord;
points[]
Point
dizisidir. Farz tabanının dizi zaten EBX
C i
EAX
xcoord
ycoord
her biri 32 bit (ycoord
uzaklığı 4 bayt yapı), bu ifade edilebilir derlenmiş için:
MOV EDX, [EBX 8*EAX 4] ; right side is "effective address"
EDX
16 *ineceğim. 8 ölçek faktörü Point
Her 8 bayt boyutu olmasıdır. Şimdi aynı ifade ile kullanılan düşünün "Adres" operatör &:
int *p = &points[i].ycoord;
Bu durumda ycoord
ama adresini değeri istemezsin. LEA
(yük etkili adresi) devreye giriyor. Yerine ** 22, derleyici oluşturabilir
LEA ESI, [EBX 8*EAX 4]
ESI
Adres yük olacak.
Visual Studio Barındırma İşlemini amac...
Bu gereksiz ayraç amacı nedir?...
İfade "yeni bir Dize amacı ne (.....
OAuth 2'de örtülü hibe yetkilendirme t...
CSS '@' simge amacı nedir?...