Erinevus lehekülje "Little Man Computer" redaktsioonide vahel

Allikas: Kuutõrvaja
27. rida: 27. rida:
  
 
  Käsk    Näide ja selgitus
 
  Käsk    Näide ja selgitus
  ADD  - ADD23, Liida postkastis number 23 olevale numbrile kalkulaatoris olev number
+
  ADD  - ADD 23, Liida postkastis number 23 olevale numbrile kalkulaatoris olev number
  SUB  - SUB23, Lahuta postkastis number 23 olevast numbrist kalkulaatoris olev number
+
  SUB  - SUB 23, Lahuta postkastis number 23 olevast numbrist kalkulaatoris olev number
  STA  - STA23, Salvesta taskuarvutiga arvutamisel saadud tulemus postkasti 23
+
  STA  - STA 23, Salvesta taskuarvutiga arvutamisel saadud tulemus postkasti 23
  LFA  - LDA23, Loe postkastis 23 olev arv ning sisesta see kalkulaatorisse
+
  LFA  - LDA 23, Loe postkastis 23 olev arv ning sisesta see kalkulaatorisse
  BRA  - BRA10, Muuda loenduril olev number ümber number 10neks
+
  BRA  - BRA 10, Muuda loenduril olev number ümber number 10neks
  BRZ  - BRZ15, Kui kalkulaatoris olev aktiivne number on 000, seadista loenduri numbriks 15. Ehk siis lihtne IF võrdustehe
+
  BRZ  - BRZ 15, Kui kalkulaatoris olev aktiivne number on 000, seadista loenduri numbriks 15. Ehk siis lihtne IF võrdustehe
  BRP  - BRP15, Kui kalkulaatoris olev aktiivne number on 0 või nullist suurem seadista loenduri numbriks 15.
+
  BRP  - BRP 15, Kui kalkulaatoris olev aktiivne number on 0 või nullist suurem seadista loenduri numbriks 15.
 
  INP  - Loe sisendis olev number ja sisesta see kalkulaatorisse
 
  INP  - Loe sisendis olev number ja sisesta see kalkulaatorisse
 
  OUT  - Kirjuta kalkulaatoris olev number väljundisse
 
  OUT  - Kirjuta kalkulaatoris olev number väljundisse
42. rida: 42. rida:
  
 
  INP  - Kirjuta sisendis olev esimene arv kalkulaatorisse
 
  INP  - Kirjuta sisendis olev esimene arv kalkulaatorisse
  STA06 - Salvesta kalkulaatoris olev arv postkasti NR6
+
  STA 06 - Salvesta kalkulaatoris olev arv postkasti NR6
 
  INP  - Kirjuta sisendist teine number kalkulaatorisse
 
  INP  - Kirjuta sisendist teine number kalkulaatorisse
  ADD06 - Liida kalkulaatoris olevale numbrile postkastis NR6 olev number
+
  ADD 06 - Liida kalkulaatoris olevale numbrile postkastis NR6 olev number
 
  OUT  - Kirjuta kalkulaatoris olev number üles ja pane see väljundisse
 
  OUT  - Kirjuta kalkulaatoris olev number üles ja pane see väljundisse
  

Redaktsioon: 8. jaanuar 2018, kell 17:41

Little Man Computer ehk Väikese mehe arvuti on lihtsustatud näide arvutiarhidektuurist, mis loodi Stuart Madnicki poolt 1965 aastal.

LMC sisaldab mälu, protsessorit, sisend väljundit ning kasutab lihtsat instruktsioonide nimekirja, mille abil on sellele võimalik kirjutada lihtsaid programme. Näiteks arvude liitmiseks ja lahutamiseks, korrutamiseks, sorteerimiseks jne.

Kujutage endale ette tuba. Selle ühes seinas on 100 postkasti (mälu), mis on kõik varustatud numbriga nullist kuni 99-ni. Iga neist postkastidest võib sisaldada käsklust (instruktsiooni) või siis suvalist numbrit (vahemikus 000-999). Lisaks on nende kõrval veel kaks postkasti nimedega „sisend” ja „väljund”. Keset ruumi on kirjutuslaud, millel asub taskuarvuti, millega saab liita ja lahutada ning numbriloendur, millel olevat numbrit saab järjest (näiteks nupuvajutuse abil) suurendada. Lihtsustatult näeb avanev pilt välja järgnev:

Little man computer.jpg

Kõige olulisemaks komponendiks on seal toas väike mehike või kratt, kelle ülesanded on järgnevad:

1. Vaata mis numbrit loendur näitab ja jäta see meelde (Programmi alguses on selleks 0)
2. Ava postkast, millel on loenduriga sama number
3. Loe postkastis olevalt paberilt käsk (ehk instruktsioon) ning jäta see meelde.
4. Vajuta loenduril olevat nuppu, mis suurendab seal olevat arvu ühe võrra.
5. Täida postkastist loetud instruktsioon
6. Mine tagasi punkti 1.

See tsükkel kordub niikaua, kuni järgmine postkast sisaldab instruktsiooni. Kui seal pole midagi või see sisaldab ainult numbrit lõpetab väike mees enda töö ja ühtlasi lõpeb ka programm.

Instruktsiooni, mille väike mehike postkasist nr 0 sai, nimetatakse opkoodiks. See kujutab endast käsklust, mis on moodustatud spetsiifilisest käsust ning mõnest teisest postkasti numbrist.

Käke või instruktsioone, millest väike mees arusaab on kokku 11 ja need on järgnevad:

Käsk    Näide ja selgitus
ADD   - ADD 23, Liida postkastis number 23 olevale numbrile kalkulaatoris olev number
SUB   - SUB 23, Lahuta postkastis number 23 olevast numbrist kalkulaatoris olev number
STA   - STA 23, Salvesta taskuarvutiga arvutamisel saadud tulemus postkasti 23
LFA   - LDA 23, Loe postkastis 23 olev arv ning sisesta see kalkulaatorisse
BRA   - BRA 10, Muuda loenduril olev number ümber number 10neks
BRZ   - BRZ 15, Kui kalkulaatoris olev aktiivne number on 000, seadista loenduri numbriks 15. Ehk siis lihtne IF võrdustehe
BRP   - BRP 15, Kui kalkulaatoris olev aktiivne number on 0 või nullist suurem seadista loenduri numbriks 15.
INP   - Loe sisendis olev number ja sisesta see kalkulaatorisse
OUT   - Kirjuta kalkulaatoris olev number väljundisse
HLT/COB Lõpeta töötamine/lõpeta programm
DAT   - Loe järgmise postkasti sisu

Kirjutame väikesele mehikesele programmi mis liidab kaks numbrit

INP   - Kirjuta sisendis olev esimene arv kalkulaatorisse
STA 06 - Salvesta kalkulaatoris olev arv postkasti NR6
INP   - Kirjuta sisendist teine number kalkulaatorisse
ADD 06 - Liida kalkulaatoris olevale numbrile postkastis NR6 olev number
OUT   - Kirjuta kalkulaatoris olev number üles ja pane see väljundisse

Kokku võtab see programm ruumi kuus postkasti. Neist esimesed viis sisaldavad opkoode ning kuuendat kasutame ajutiseks sisendist saadud numbri hoiustamiseks. Väike mees peab aga selle täitmiseks läbima ülal toodud kuue punktilise tsükli viis korda.

Läheme nüüd natuke kerulisemaks. Arvutid tegelikult ei saa sellistest lühenditest koosnevatest käskudest aru ning järelikult ei peaks sellest arusaama ka meie väike mees. Ehk muudame oma instruktsioonid päris arvutile sarnasemaks

Lingid

https://en.wikipedia.org/wiki/Little_man_computer

https://community.computingatschool.org.uk/resources/2316/single