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
Next revision Both sides next revision
laboratoare:laborator-05 [2015/11/11 08:21]
razvan.deaconescu
laboratoare:laborator-05 [2015/11/11 08:34]
razvan.deaconescu [[1.5p] 8. Suma pătratelor elementelor dintr-un vector]
Line 152: Line 152:
 Porniți de la programul ''​sum_n.asm''​ și creați un program ''​sum_n_square.asm''​ care să calculeze suma pătratelor primelor ''​num''​ numere naturale. Porniți de la programul ''​sum_n.asm''​ și creați un program ''​sum_n_square.asm''​ care să calculeze suma pătratelor primelor ''​num''​ numere naturale.
  
 +<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:
 +  - (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''​).
 +
 +</​note>​
 +
 +<​note>​
 +Pentru verificare, suma pătratelor primelor ''​100''​ de numere naturale este ''​338350''​.
 +</​note>​
 ==== [1p] 6. Tutorial: Suma elementelor dintr-un vector reprezentate pe un octet ==== ==== [1p] 6. Tutorial: Suma elementelor dintr-un vector reprezentate pe un octet ====
  
Line 187: Line 197:
 ==== [1.5p] 8. Suma pătratelor elementelor dintr-un vector ==== ==== [1.5p] 8. Suma pătratelor elementelor dintr-un vector ====
  
-Pornind de la programul de la exercițiul anterior, calculați suma pătratelor elementelor dintr-un vector. Puteți folosi vectorul ''​dword_array''​ dar ar trebui să fie mai mici valorile elementelor ca să nu treacă pătratele valorilor acestora de reprezentarea pe 32 de biți.+Pornind de la programul de la exercițiul anterior, calculați suma pătratelor elementelor dintr-un vector.
  
 +<​note>​
 +Puteți folosi vectorul ''​dword_array''​ dar ar trebui să fie mai mici valorile elementelor ca să nu treacă pătratele valorilor acestora de reprezentarea pe 32 de biți.
 +</​note>​
 +
 +<​note>​
 +Dacă folosiți construcția de mai jos (vector cu ''​10''​ elemente)<​code>​
 +    dword_array dd 1392, 12544, 7992, 6992, 7202, 27187, 28789, 17897, 12988, 17992
 +</​code>​
 +suma pătratelor va fi ''​2704560839''​.
 +</​note>​
 ==== [1.5p] 9. Bonus: Numărul de numere negative și pozitive dintr-un vector ==== ==== [1.5p] 9. Bonus: Numărul de numere negative și pozitive dintr-un vector ====
  
laboratoare/laborator-05.txt · Last modified: 2016/01/09 18:27 by razvan.deaconescu