z-procesor
Mali Z je dizajnirao svoj prvi procesor, i treba mu pomoc oko testiranja<br><br>
Procesor ima K registara, svi registri su inicijalizovani na 0. Odnosno vrednost zapisana u svakom od njih je 0. Takodje svaki od registara radi "U MODULU 10000" odnosno ukoliko se u registar A ucitava broj N, registar A ce u sebi da zapamti broj N mod 10000<br><br>
Procesor podrzava sledece instrukcije:<br><br>
1. INC R N - Sadrzaj registra R se uvecava za vrednost N, gde je N celobrojni broj u opsegu [0..5000]. Znaci Sadrzaj[R] = (Sadrzaj[R] + N) mod 10000<br>
2. ADD R1 R2 R3 - Sabira se sadrzaj registara R1 i R2, i dobijena vredost se pamti u registru R3<br>
3. MUL R1 R2 R3 - Mnozi se sadrzaj registra R1 i R2, i dobijena vredost se pamti u registru R3<br>
4. OUT R - Sadrzaj registra R se ispisuje na standardni izlaz<br><br>
Napisite program koji za zadate instrukcije simulira rad procesora.<br><br>
Ulaz:<br>
Sa prve linije standardnog ulaza se ucitava broj N, to je broj registara procesora (1 <= N <= 100). Zatim se u narednih N linija ucitavaju imena registara, imena svakog od registara se sastoji od malih i velikih slova engleskog alfabeta, i od brojeva (ime registra je duzine ne vece od 15 karaktera). Nakon toga se ucitava broj K, koji predstavlja broj instrukcija zadataih procesoru (1 <= K <= 1000). I nakon toga se ucitava K instrukcija opisanih u tekstu zadatka, svaka u jednom redu. Instrukcije se izvrsavaju u redu u kome se ucitavaju sa ulaza.<br><br>
Izlaz:<br>
Na standardni izlaz treba ispisati L brojeva, svaki u novoj liniji, gde L predstavlja broj OUT instrukcija zadatih u ulazu.<br><br>
Primer:<br><br>
Ulaz:<br>
2<br>
AX<br>
BX<br>
6<br>
INC AX 10<br>
INC BX 10<br>
MUL AX BX AX<br>
OUT AX<br>
ADD AX BX BX<br>
OUT BX<br><br>
Izlaz:<br>
100<br>
110<br>
<br><br>
* U ulazu ce uvek postojati bar jedna OUT instrukcija
Procesor ima K registara, svi registri su inicijalizovani na 0. Odnosno vrednost zapisana u svakom od njih je 0. Takodje svaki od registara radi "U MODULU 10000" odnosno ukoliko se u registar A ucitava broj N, registar A ce u sebi da zapamti broj N mod 10000<br><br>
Procesor podrzava sledece instrukcije:<br><br>
1. INC R N - Sadrzaj registra R se uvecava za vrednost N, gde je N celobrojni broj u opsegu [0..5000]. Znaci Sadrzaj[R] = (Sadrzaj[R] + N) mod 10000<br>
2. ADD R1 R2 R3 - Sabira se sadrzaj registara R1 i R2, i dobijena vredost se pamti u registru R3<br>
3. MUL R1 R2 R3 - Mnozi se sadrzaj registra R1 i R2, i dobijena vredost se pamti u registru R3<br>
4. OUT R - Sadrzaj registra R se ispisuje na standardni izlaz<br><br>
Napisite program koji za zadate instrukcije simulira rad procesora.<br><br>
Ulaz:<br>
Sa prve linije standardnog ulaza se ucitava broj N, to je broj registara procesora (1 <= N <= 100). Zatim se u narednih N linija ucitavaju imena registara, imena svakog od registara se sastoji od malih i velikih slova engleskog alfabeta, i od brojeva (ime registra je duzine ne vece od 15 karaktera). Nakon toga se ucitava broj K, koji predstavlja broj instrukcija zadataih procesoru (1 <= K <= 1000). I nakon toga se ucitava K instrukcija opisanih u tekstu zadatka, svaka u jednom redu. Instrukcije se izvrsavaju u redu u kome se ucitavaju sa ulaza.<br><br>
Izlaz:<br>
Na standardni izlaz treba ispisati L brojeva, svaki u novoj liniji, gde L predstavlja broj OUT instrukcija zadatih u ulazu.<br><br>
Primer:<br><br>
Ulaz:<br>
2<br>
AX<br>
BX<br>
6<br>
INC AX 10<br>
INC BX 10<br>
MUL AX BX AX<br>
OUT AX<br>
ADD AX BX BX<br>
OUT BX<br><br>
Izlaz:<br>
100<br>
110<br>
<br><br>
* U ulazu ce uvek postojati bar jedna OUT instrukcija
Submit solution
Coming laterThe grading service will be connected in a later migration step. You can inspect the task and your previous results now.