This shows you the differences between two versions of the page.
so-etti:teme:tema_restanta [2014/07/16 09:56] alexandru.radovici |
so-etti:teme:tema_restanta [2014/07/16 10:06] (current) alexandru.radovici |
||
---|---|---|---|
Line 95: | Line 95: | ||
& - si | & - si | ||
| - sau | | - sau | ||
+ | = - egal | ||
+ | != - diferit | ||
==== Afisarea pe ecran ===== | ==== Afisarea pe ecran ===== | ||
Line 100: | Line 102: | ||
print expresie | print expresie | ||
</code> | </code> | ||
- | ===== Cerinta ====== | ||
- | * Scrieti un parser si afisati AST-ul. Forma AST-ului este decizia voastra, insa va trebui sa ii descrieti fiecare nod in fisierul README.txt. (10 p) | ||
- | * Executati AST-ul (10 p) | ||
- | * Afisati limbajul in asamblare (10 p) | ||
- | * Executati limabjul de asamblare (10 p) | ||
===== Limbajul ASM ===== | ===== Limbajul ASM ===== | ||
+ | ADD r2, r1, r0 (r2=r1+r0) | ||
+ | |||
+ | SUB r2, r1, r0 (r2=r1-r0) | ||
+ | |||
+ | MUL r2, r1, r0 (r2=r1*r0) | ||
+ | |||
+ | DIV r3, r2, r1, r0 (r3=r1/r0, r2=r1%r0) impartire intreaga | ||
+ | |||
+ | DIVF r2, r1, r0 (r2=r1/r0) impartire in virgula mobila | ||
+ | |||
+ | PRINT r0 afiseaza r0 pe ecran | ||
+ | |||
+ | TEST r0, r1 | ||
+ | |||
+ | JE eticheta - sare daca ultimul test este r0=r1 | ||
+ | |||
+ | JNE eticheta - sare daca ultimul test este r0!=r1 | ||
+ | |||
+ | JG eticheta - sare daca ultimul test este r0>r1 | ||
+ | |||
+ | JL eticheta - sare daca ultimul test este r0<r1 | ||
+ | |||
+ | JMP eticheta - sare | ||
+ | |||
+ | RUN eticheta p1, p2, p3, impinge pe stiva parametrii si sare la eticheta | ||
+ | |||
+ | RETURN valoare - scoate de pe stiva parametrii si sare inapoi de unde a venit cu RUN. Impinge pe stiva valoarea de intoarcere. | ||
+ | |||
+ | eticheta: - plaseaza o eticheta | ||
+ | ===== Cerinta ====== | ||
+ | * Scrieti un parser si afisati AST-ul. Forma AST-ului este decizia voastra, insa va trebui sa ii descrieti fiecare nod in fisierul README.txt. (10 p) | ||
+ | * Executati AST-ul (10 p) | ||
+ | * Afisati limbajul in asamblare (10 p) | ||
+ | * Executati limabjul de asamblare (10 p) | ||
+ | |||
+ | ===== Erori ===== | ||
+ | In caz de eroare de parcurgere, afisati: | ||
+ | <code> | ||
+ | Error: text erooare | ||
+ | </code> | ||
+ | |||
+ | Programul iese cu un code de eroare | ||
+ |