Hi inet,"HIX CODER" >!
>de a lea val nem ertek 1et.. latom nem eresztel ra a lea
>lenyegere... sza'l a lea di,[dest] nem csinal mast, mint
>amit a proci kiszamol memoria offsetet, aszt benyomattya
iC> Pontosan. Azaz dest offszetcimet tolti (e)di-be. Nem ez volt a cel?
>eredeti pascal codot, akko' ra foxx yonni, hogy ennek nincs
>ertelme... csak atirod a dest pointer erteket...;)))))
iC> Milyen pointer? Ha jol emlexem ez volt az eredeti:
iC> procedure valami(var Dest);
iC> Ez nyugodtan veheto egy valtozonak is, nem?
igen... eppen ebben van a lenyeg... szoval a dest ebben
az esetben egy valtozo.... /ami amugy a stackben lesz, de
ez mar egy mas teszta...;)/ szoval dest egy valtozo, aminek
te megkapod az offsetjet... es ha arra az offsetre irsz valamit,
akkor azt a valtozot fogod szetirni... erted?!??!? amugy
a lea val van meg egy bay, hogy az csak egy offsetet ad
neked, es akkor neked meg gozod sincs, hogy mejik seg/sel
ben talal6o az a bizonyos fassag, amit irni akarsz...
/amugy a lea 'rosszasagarol' itt van egy peldaproggy:
> ---------------------------------------------------------------------
{$A+,B+,D+,E+,F-,G+,I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+}{$M 16384,0,655360}
procedure vala(var d);
var w:word;
.
> ---------------------------------------------------------------------
>amugy visszaterve a leara, kevesen tuggyak, eze' irok rola..
>sza'l a lea reg16,[mem32] esetben lecsonkittya 16 bitre az
>eredmenyt... hasznalni pl ugy lehet, hogy lea ax,[ecx*8+edx+12h]
>lea reg32,[mem16] a dolog, akko' 16 bitesen szamoyya ki,
>de aszan kitooti 0akkal a 16..31 biteket... te6 pl a
>lea edx,[bx+si+4h] az edx:=(bx+si+16) and $ffff ot fogja
>elvegezni... es ha reg16,[mem16] vagy reg32,[mem32] van,
>akko' aszt gondolom ti is kitalayyatok... sza'l osszegzes
>keppen Lmond6tyuk /sok sok idezoyel koszt!/ hogy a lea egy
>amoyan aritmetikai muvelet.... na csao....
iC> Ezt honnan szedted? En mindenhol csak annyit talaltam rola hogy:
eszt az en sayat kis sikobello fejembo' szettem... oda pedig
tapasztalas uttyan jutott... amugy a tapasztalast, mint
a tanulas elsodleges formajat neked is figyelmedbe ajallom...
elkepzel7o, hogy tobbet er, mint mindenfele szajhagyomany
uttyan terjedo okossagokat /ellenorzes nelkul/ kesz tenykent
kezelni... tod oyan doxxokban, amik szep hosszuak, es a nagy
reszuk masolgatas uttyan keletkezett, eleve kerdkedve all
hozza a ember... /asztan ha talal benne hibat, akkor megjobban
kerdkedik, es el is teszi oket yo messzire, hogy meg veletlenul
se talajjon rajuk;))))
iC> lea dest,src - Transfers offset address of "src"
iC> to the destination register
igen.... ez igy heyes is... ugyan 1 kicsit fukar, de heyes...
/az en doxxom, es az intel hivatalos doxxa annyival +tolgya,
hogy 'rather than its value'... vagy valami hasollok... sza'l
a dest-be beleteszi scr offsetjet... /nem az erteket!/ magyarul
a lea di,[dest] egyenlo mov di,offset dest.... stimmol?!?? de ha
nem hiszed, hogy a lea csak szamol, akko' debuggold meg eszt a kodot:
> ---------------------------------------------------------------------
mov bp,1979h ;a muveletek: ;az eredmenyejik:
mov si,1025h ;direkt vannak segmens regek, de tok foloslegesek!
lea ax,ss:[si+bp+9120h];ax:=si+bp+9120 ;babe, |=|_|c|< @|=|=...;))))
lea bx,fs:[si+bp] ;bx:=si+bp ;299e
lea cx,gs:[si+4321h] ;cx:=si+4321 ;5346
lea dx,es:[bp+5678h] ;dx:=bp+5678 ;6ff1
lea di,cs:[1234h] ;di:=1234 ;1234 <-- ez az 1 bisztos, mer'hogy
ret ; fejben szamoltam;)))))))
> ---------------------------------------------------------------------
Mc
|