Sunteți pe pagina 1din 2

Joi, 30 mai 2019, Răzvan Rădulescu ne-a prezentat alte trei instrucțiuni care se adaugă

celor anterioare și a adăugat un condiment (boabe de coriandru).

RAM

Adresă Date

0001 2 Verze
0010 3 Pui
0011 3 Tomate
0100 7 Ridichi
0101 5 Cepe
0110 5 Boabe
Coriandru
Încarcă 0001
Mută 0010 Periferic (de ex.
Taie 0011
Monitor)
Prăjește 0100
Fierbe 0101 1111
Amestecă 0110
Așteaptă 0111
Compari 1000
Sari 1001
Adaugă treptat 1010

Regiștrii:
Ax 1000
Bx 1010

Astfel, dacă la început amestecam ridichiile și cepele, tăiam varza și puiul numai cu
registrul Ax și prăjeam totul în oală, în final adăugam treptat câte un bob de coriandru.
Adăugarea coriandrului s-a realizat folosind procesul de iterație cu o unitate. Rezolvarea
acestor cerințe folosind codul binar este redată mai jos. Prima coloană sau opcode reprezentă
instrucțiunea care trebuie executată în format 4 biți, a doua coloană reprezintă adresa RAM și
ultima coloană valoare ( sau adresa RAM la unele instrucțiuni):
1. 0001 0001 0010 – încarcă în primul sertar 2 verze
2. 0001 0010 0011 – încarcă în al doilea sertar 3 pui
3. 0001 0011 0011 – încarcă în al treilea sertar 3 tomate
4. 0001 0100 0111 – încarcă în al patrulea sertar 7 ridichi
5. 0001 0101 0101 – încarcă în al cincilea sertar 5 cepe
6. 0010 0100 1000 – mută sertarul al patrulea în registrul Ax
7. 0010 0101 1010 – mută sertarul al cincilea în registrul Bx
8. 0110 0000 0000 – amestecă
9. 0010 1000 1111 – mută ce se află în registrul Ax în oală
10. 0010 1010 1111 – mută ce se află în registrul Bx în oală
11. 0010 0001 1000 – mută ce se află în sertarul 1 în registrul Ax
12. 0011 1000 0000 – taie ce se află în registrul Ax
13. 0010 1000 1111 – mută ce se află în registrul Ax în oală
14. 0010 0010 1000 – mută ce se află în sertarul 2 în registrul Ax
15. 0011 1000 0000 - taie ce se află în registrul Ax
16. 0010 1000 1111 - mută ce se află în registrul Ax în oală
17. 0010 0011 1111 – muta ce se află în sertarul 3 în oală
18. 0100 0000 0000 – prăjește

100. 0001 0110 0101 – încarcă în al șaselea sertar 5 boabe de coriandru


190. 0001 1010 0011 – încarcă în registrul Bx nivelul 3 de satisfacție
gastronomică din punct de vedere al condimentării
200. 1010 1000 0110 – adaugă treptat ce se află în sertarul 6 în
registrul Ax
210. 1000 1000 1010 – compară ce se află în registrul Ax cu ce se află în
registrul Bx; dacă registrul Ax va fi mai mic decât registru Bx atunci
steagul (flag) este 0 sau false. Când Ax va fi mare ca Bx steagul va
deveni 1 sau true.
220. 1001 250 0001 – sari la linia 250 condiționată : adica dacă steagul
este 1.
(0000– saritura indiferent de steag 1 sau 0, 0001 – saritura
conditionata de steag)
230. 1010 1000 0110 – adauga 1 element în registrul Ax din ce se află în
sertarul 6
240. 1001 210 0000 – sari la linia 210 necondiționat.
250. Stop

Ceasul procesorului este cel care dictează frecvența de procesare a instrucțiunilor în


herți pe secundă. De exemplu, procesorul telefonului meu are o frecvență maximă de 1.85 GHz
sau 3.60 GHz frecvența procesorului calculatorului de la serviciu ceea ce indică o frecvență de
procesare de 1 850 000 000 sau 3 600 000 000 instrucțiuni executate pe secundă.
În partea a doua a cursului ne-au fost prezentați câțiva pași similari dar din perspectiva
lui Carrie Anne Philbin în episodul 8 (Instructions & Programs: Crash Course Computer
Science) dintr-o serie interesantă de 40 episoade Crash Course Computer Science:
https://www.youtube.com/playlist?list=PL8dPuuaLjXtNlUrzyH5r6jN9ulIgZBpdo
Enjoy!

S-ar putea să vă placă și