User Tools

Site Tools


laboratoare:laborator-05

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
laboratoare:laborator-05 [2015/11/11 14:45]
razvan.deaconescu [[0.5p] 1. Tutorial: Înmulțire două numere reprezentate pe un octet]
laboratoare:laborator-05 [2016/01/09 18:27] (current)
razvan.deaconescu [[2p] 10. Bonus: Numărul de numere pare și impare dintr-un vector]
Line 139: Line 139:
 La afișarea rezultatului folosiți două instrucțiunii ''​PRINT_UDEC''​ pentru a afișa cele două registre care conțin rezultatul: La afișarea rezultatului folosiți două instrucțiunii ''​PRINT_UDEC''​ pentru a afișa cele două registre care conțin rezultatul:
   * Registrele ''​DX''​ și ''​AX''​ pentru înmulțirea numerelor de tip ''​word''​.   * Registrele ''​DX''​ și ''​AX''​ pentru înmulțirea numerelor de tip ''​word''​.
-  * Registrele ''​EDX''​ și ''​AAX''​ pentru înmulțirea numerelor de tip ''​dword''​.+  * Registrele ''​EDX''​ și ''​EAX''​ pentru înmulțirea numerelor de tip ''​dword''​.
  
 </​note>​ </​note>​
Line 167: Line 167:
  
 <note tip> <note tip>
-Registrele ''​eax''​ și ''​edx''​ le veți folosi la înmulțirea pentru ridicarea la putere (în instrucțiunea ''​mul''​). Pentru a reține suma pătratelor aveți două variante:+Registrele ''​eax''​ și ''​edx''​ le veți folosi la înmulțirea pentru ridicarea la putere (în instrucțiunea ''​mul''​). Astfel că nu veți mai putea folosi (ușor) registrul ''​eax''​ pentru stocarea sumei pătratelor. Pentru a reține suma pătratelor aveți două variante:
   - (mai simplu) Folosiți registrul ''​ebx''​ pentru a reține suma pătratelor.   - (mai simplu) Folosiți registrul ''​ebx''​ pentru a reține suma pătratelor.
   - (mai complicat) Înainte de a opera registrul ''​eax''​ salvați valoarea sa pe stivă (folosind instrucțiunea ''​push''​),​ apoi faceți operațiile necesare și apoi restaurați valoarea salvată (folosind instrucțiunea ''​pop''​).   - (mai complicat) Înainte de a opera registrul ''​eax''​ salvați valoarea sa pe stivă (folosind instrucțiunea ''​push''​),​ apoi faceți operațiile necesare și apoi restaurați valoarea salvată (folosind instrucțiunea ''​pop''​).
Line 252: Line 252:
 Pentru testare folosiți un vector doar cu numere pozitive. Pentru numere negative trebuie să faceți extensie de semn; ar merge și fără pentru că ne interesează doar restul, dar nu am fi riguroși :-) Pentru testare folosiți un vector doar cu numere pozitive. Pentru numere negative trebuie să faceți extensie de semn; ar merge și fără pentru că ne interesează doar restul, dar nu am fi riguroși :-)
 </​note>​ </​note>​
 +
 +===== Soluții =====
 +
 +[[http://​elf.cs.pub.ro/​asm/​res/​laboratoare/​lab-05-sol.zip|Soluții de referință pentru exercițiile de laborator]]
 +
laboratoare/laborator-05.1447245928.txt.gz · Last modified: 2015/11/11 14:45 by razvan.deaconescu