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