[ konacnonasi @ 27.12.2003. 18:40 ] @
Dakle moje pitanje je u vezi registra ovako (ja sam pocetnik) ne mogu da shvatim da li da su registri odredjeni pri pravljemnju procesora tj. da li su to oni samo softverski deo hardvera nesto kao drajveri ili su to delovi OS koji mu pomazi da razvrsta operacije?
I ako bi mogao neko da mi kaze da li sam dobro razumeo sta koji registar radi:
Generalni registri:
• AX— Akumulacioni registar(u njemu se izvrsavaju operacije, ne?)
• BX— registar baze adresa tu se skladiste sve adrese koje koristimo pri pravljenju programa tj. koje se izvrsavaju tj. koje se koriste pri izvrsenju programa
• CX— registar brojeva (cak nemogu ni da pogadjam za sta on sluzi)
• DX— registar podataka (tu se cuvaju podaci koji se dobiju za vreme rada programa)
• SI— registar izvora (ovo je valjda nesto kao start up tu se cuvaju veze sa svim programima)
•DI— registar destinacije(nemogu ni da nagadjam za sta sluzi)
•BP— pokazivac baze (ne znam)
•SP—pokazivac steka(sta je stek?)
SEGMENTSKI registri:
•CS—pokazuje segment gde se nalazi program
•DS—upucuje na segmente u kojim se definisu varijable
•ES—Ekstra se gment neodredjene svrhe
•SS—pokazuje segment u kome se nalazi stek
Ako bi neko mogao da pogleda ovo i kaze mi da li sam dobro razumeo sta koji registar radi ili sam skrenu levo kod alberkerkija(alberkerki–znace ko je kao mali gledao Duska Dugouska)
HVALA UNAPRED....
[ Sundance @ 27.12.2003. 20:35 ] @
Kao prvo driveri nisu nuzno softverski dio hardvera, a registri nisu dijelovi OS-a. Samo hardverski dio hardvera (procesora :) Mada se unutar kernela kesiraju u memoriju za vrijeme context switcheva, ali to nije vazno.

Nemoj se nuzno opterecivati sto koji registar radi i cemu sluzi, najbolje bi bilo da se sa njima upoznas kroz konkretne programe u debuggeru i sl. I da predjes na ia32 cim prije...
[ Pera_Anarhista @ 09.01.2004. 12:20 ] @
cao
i ja bih se slozio da batalis 16bitni asembler i predjes na 32bitni sto pre, kao i da zaboravis cemu koji registar sluzi. bitno je da program radi :)

ja ih najcesce ovako koristim, jer mi je i kod onda razumljiviji:
eax - svakodnevno racunanje (jer su komande krace, brze etc.)
ebx, edx - kao "varijable"
ecx - counter
esi, edi - pointeri za svakodnevno koriscenje
ebp - pointer za varijable, areje etc.

nisam jos stigao da se pozabavim asemblerom pod linuxom, ali koliko sam imao prilike da vidim, linux koristi registre kao argumente, dok ih windows stavlja na stack.

p.s. ja imam zbirku tutoriala, kompajlera i raznih drugih programcica za x86 asembler, kako pod windowsom tako i pod linuxom. jedina kvaka je sto je to sve 46 mb, pa ako mislis da ti treba, nije problem da okacim negde.

p.p.s. zar nije albukerki ? ;)
[ system0verride @ 21.02.2004. 20:03 ] @
Hmm pa ne bih se bas slozio da odmah predjes na 32-bitni ASM.Registre koje si pomenu mozes naci na svakoj x86 arhitekturi racunara tj program koji ces da napises u 16 bitnom ASM ce da radi na svakom x86 racunaru.Stoji da u 16 bitnom ASM neces moci da uradis nista korisno(mada je tesko definisati sta je korisno).Ako planiras da se posvetis samo ASM-u nije zgoreg poceti od 16-bitnog ASM.Da registri imaju veze sa arhitekturom.Te registre koje si ti nabrojao su postojali na prvim x86 racunarima(Sada su u procesoru svi registri opste namene).
AX-16bit registar-registar koji se uvek koristi pri operacijama mnozenja i delenja tj on uvek mora da bude jedan od registara
primer
mov ax,1h
mov bx,2h
mul bx
ovo ce pomnoziti 1 hexa sa 2 hexa i smestit rez u ax
itd
http://l3.elfak.ni.ac.yu/racsis/ pa skini neke resene zadatke
mrzelo me da pisem o svim registrima ako ti treba objasnjenje za sve reci napisacu