This shows you the differences between two versions of the page.
|
so-etti:teme:tema_restanta [2014/07/16 10:04] alexandru.radovici |
so-etti:teme:tema_restanta [2014/07/16 10:06] (current) alexandru.radovici |
||
|---|---|---|---|
| Line 105: | Line 105: | ||
| ===== Limbajul ASM ===== | ===== Limbajul ASM ===== | ||
| ADD r2, r1, r0 (r2=r1+r0) | ADD r2, r1, r0 (r2=r1+r0) | ||
| + | |||
| SUB r2, r1, r0 (r2=r1-r0) | SUB r2, r1, r0 (r2=r1-r0) | ||
| + | |||
| MUL 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 | DIV r3, r2, r1, r0 (r3=r1/r0, r2=r1%r0) impartire intreaga | ||
| + | |||
| DIVF r2, r1, r0 (r2=r1/r0) impartire in virgula mobila | DIVF r2, r1, r0 (r2=r1/r0) impartire in virgula mobila | ||
| Line 113: | Line 117: | ||
| TEST r0, r1 | TEST r0, r1 | ||
| + | |||
| JE eticheta - sare daca ultimul test este r0=r1 | JE eticheta - sare daca ultimul test este r0=r1 | ||
| + | |||
| JNE 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 | JG eticheta - sare daca ultimul test este r0>r1 | ||
| + | |||
| JL eticheta - sare daca ultimul test este r0<r1 | JL eticheta - sare daca ultimul test este r0<r1 | ||
| + | |||
| JMP eticheta - sare | JMP eticheta - sare | ||
| RUN eticheta p1, p2, p3, impinge pe stiva parametrii si sare la eticheta | 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. | 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 ====== | ===== 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) | * 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) | ||
| Line 127: | Line 138: | ||
| * Afisati limbajul in asamblare (10 p) | * Afisati limbajul in asamblare (10 p) | ||
| * Executati limabjul de 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 | ||