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 | ||
| + | |||