[ stameni @ 09.11.2004. 15:08 ] @
Prilično dugo u assemblerima koristim ove naredbe, ali mi nije jasno koja se tačno vrednost pomoću njih upisuje u registre. Naime, ako imam objekat na adresi ABCDEh i kažem

Code:
LDS SI, objekat


može biti
Code:
DS = ABCDh, SI = 000Eh,

ali i
Code:
DS = ABCCh, SI = 001Eh,

takođe i
Code:
DS = ABCBh, SI = 002Eh

itd.

Ipak, procesor mora da bira samo jednu kombinaciju. Koju? Da li viših šesnaest bitova adrese ulaze u segmentni registar, a niža četiri u registar opšte namene (tako da je offset minimalan) ili postoji neko drugo pravilo?
[ zvrba @ 10.11.2004. 07:27 ] @
Procesor nista ne bira nego samo cita ono sto pise u memoriji.

Tvoj objekat (operand instrukcije) je ADRESA u memoriji. Sa te adrese procesor cita 4 bajta i prva dva bajta spremi u offset registar (npr. SI), a druga dva bajta spremi u segmentni registar (npr. DS za LDS instrukciju).
[ stameni @ 10.11.2004. 10:49 ] @
Ah, far pointer, što bi se reklo. Hvala :)