Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 8 odgovora
  • 8.292 pregleda

Najnovija ↓

Instrukcioni kod. Registar naredbi i dekoder? 28.01.2005. u 17:24 · pre 265 meseci #1
Imam pitanje iz arhitekture racunara, vezano za instrukcioni kod CPU-a, pa me interesuje sta bi trebalo da pricam vezano za to pitanje?

Dakle, kako glasi kod instrukcije koji se salje CPU-u?
Re: Instrukcioni kod. Registar naredbi i dekoder? 30.01.2005. u 04:45 · pre 265 meseci #3
Ako sam ja dobro razumeo tvoje pitanje, taj tvoj "instrukcioni kod" moze biti: 1-bajtni, 2-bajtni, 3-bajtni, 4-bajtni i 6-bajtni... to ustvari predstavlja format instrukcije. Pa onda tu moze da se kaze da se jednobajtne instrukcije koriste kada se mesto operanda podrazumeva ili kad se instrukcija poziva sa registrom kao operandom, i tako dalje... Reci mi da li je to ono sto ti trazis, da ne bih ja dzabe tipkao ovde...
Re: Instrukcioni kod. Registar naredbi i dekoder? 30.01.2005. u 10:54 · pre 265 meseci #4
Upravo to... format instrukcije. Negde sam pronasao da se format instrukcije, kod mikorkontrolera, sastoji iz OPCODE-a i jos dva bajta u kojima se upisuje adresa gde ce se rezultat upisati i adresa operanda...

sta ti mislis o tome, ili napisi sta znas.

Unapred zahvalan
Re: Instrukcioni kod. Registar naredbi i dekoder? 30.01.2005. u 15:01 · pre 265 meseci #5
to sto si ti naveo je 3-bajtni format... Sad cu ti opisati svih 5 formata instrukcija:

1-bajtni format: (opcode) [registar]
Kod ovog formata znaci ide samo opcode kada se mesto operanda podrazumeva, ili se dodaje naziv nekog registra u nastavku ako je on operand

2-bajtni format: (opcode) (mod reg r/m)
Ovde sam ti razdvojio po bajtovima, znaci opcode zauzima jedan bajt, mod 2 bita, reg 3 bita i r/m 3 bita. Ove instrukcije su tipa registar/memorija u registar bez pomeraja, ili registar/memorija iz registra bez pomeraja... Deo reg predstavlja adresu registra procesora u kojem se nalazi odredisni operand, npr. ax je 000, di je 111, a za ostale se ne secam ;) a mogu ti ih naci, ako ces da ucis i to... Poljima mod i r/m odredjujes koji ce se registri koristiti za adresiranje.

3-bajtni format: (opcode) ((neposredni operand))
Ovaj format se za instrukcije tipa neposredni operand u registar. Neposredni operand zauzima dva bajta, kao sto se vidi prema mojim zagradama.

4-bajtni format: (opcode) (mod reg r/m) ((memorijska lokacija ili registar))
Ovaj format instrukcije je slican 2-bajtnom, samo sto se ovde moze koristiti i pomeraj. Znaci ovaj format se koristi za instrukcije tipa registar/memorija u registar sa pomerajem ili registar/memorija iz registra sa pomerajem

6-bajtni format: (opcode) (mod reg r/m) ((memorijska lokacija)) ((neposredni operand))
Koristi se za instrukcije tipa neposredni operand u memoriju. Kao sto vidis, slican je 3-bajtnom, samo sto se kod trobajtnog ide u registar, a ovde u memoriju.

Re: Instrukcioni kod. Registar naredbi i dekoder? 05.02.2005. u 23:45 · pre 264 meseca #6
Bilo bi lijepo da si rekao o kojem se konkretno CPU-u radi, pa da dobiješ malo konkretnije detalje :)

Inače, moderni x86 CPU instrukcije prevodi u kompaktniji RISC-like interni instrukcijski format, a individualne operacije koje su namijenjene jedinicama izvršavanja ovise o detaljima implementacije CPU-a ("ops" za K7, "rops" za PIII, "atoms" za Crusoe, etc.). Usput se interno redoslijed instrukcija rearanžira tako da se mogu izvoditi paralelno te se, kao rezultat, sekvencijalni, uređeni (u smislu ordered) kod koji je proslijeđen CPU-u se izvodi paralelno i OOO(Out of order).

Tu je još i priča VLIW vs. dinamički superskalarni scheduling instrukcija, blablabla...vidi detalje na ars technica ili u priručnicima :>
Re: Instrukcioni kod. Registar naredbi i dekoder? 06.02.2005. u 20:06 · pre 264 meseca #7
Mislim da mu je do sada prosao ispit, tako da mu verovatno vise nisu potrebne dodatne informacije ;)
Potpis
Q: Are there really any systems where
void main() doesn't work?
A: It has been reported that programs using void main() can crash.
Q: The book I've been using, _C Programing for the Compleat Idiot_,
always uses void main().
A: Perhaps its author counts himself among the target audience.
Re: Instrukcioni kod. Registar naredbi i dekoder? 06.02.2005. u 21:38 · pre 264 meseca #8
Upravu si da mi je prosao ispit... malo sam bio neodogovoran sto to nisam napomenuo... :(

izvinjavam sam se svima... i takodje zahvaljujem, narocito BaCkSpAcE-u, ciji post mi je u mnogome pomogo.

...a nisam imao vremena da napisem ovo jer mi je to bio poslednji ispit, koji sam polozio i sada spremam veoma ubrzanim tempom diplomski iz MKE kako bih stigao da "uhvatim vozu" za martovsku klasu... nadam se da cete me razumeti
Re: Instrukcioni kod. Registar naredbi i dekoder? 06.02.2005. u 21:47 · pre 264 meseca #9
Ma naravno da cemo te razumeti. Da nam sretno polozis diplomski i, jos vaznije, da nam se ziv vratis iz vojske :)
Potpis
Q: Are there really any systems where
void main() doesn't work?
A: It has been reported that programs using void main() can crash.
Q: The book I've been using, _C Programing for the Compleat Idiot_,
always uses void main().
A: Perhaps its author counts himself among the target audience.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme