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 07:53]
razvan.deaconescu [Ridicare număr la puterea a treia]
laboratoare:laborator-05 [2015/11/11 08:01]
razvan.deaconescu [Suma elementelor dintr-un vector]
Line 138: Line 138:
 Nu definiți un număr foarte mare, pentru a putea fi vizualizat rezultatul înmulțirii în registrul ''​eax''​. Nu definiți un număr foarte mare, pentru a putea fi vizualizat rezultatul înmulțirii în registrul ''​eax''​.
  
-==== Tutorial: Suma elementelor ​într-un vector reprezentate pe un octet ====+==== Tutorial: Suma elementelor ​dintr-un vector reprezentate pe un octet ====
  
-TODO+În programul ''​sum_array.asm''​ din [[http://​elf.cs.pub.ro/​asm/​res/​laboratoare/​lab-05-tasks.zip|arhiva laboratorului]] este calculată suma elementelor unui vector (//array//) de octeți (//bytes//, reprezentare pe 8 biți).
  
 +Urmăriți codul, observați construcțiile și registrele specifice pentru lucru cu bytes. Rulați codul.
  
-==== Suma elementelor într-un vector ====+<note important>​ 
 +Treceți la următorul pas doar după ce ați înțeles foarte bine ce face codul. Vă va fi greu să faceți exercițiile următoare dacă aveți dificultăți în înțelegerea exercițiului curent. 
 +</​note>​
  
-TODO 
  
-==== Suma pătratelor elementelor ​într-un vector ====+==== Suma elementelor dintr-un vector ==== 
 + 
 +În zona marcată cu ''​TODO''​ din fișierul ''​sum_array.asm''​ completați codul pentru a realiza suma vectorilor cu elemente de tip word (16 biți) și de tip dword (32 de biți); este vorba de vectorii ''​word_array''​ și ''​dword_array''​. 
 + 
 +<note tip> 
 +Când veți calcula adresa unui element din array, veți folosi construcție de forma:<​code>​ 
 +base + size * index 
 +</​code>​ 
 +În construcția de mai sus: 
 +  * ''​base''​ este adresa vectorului (adică ''​word_array''​ sau ''​dword_array''​) 
 +  * ''​size''​ este lungimea elementului vectorului (adică ''​2''​ pentru vector de word (16 biți, 2 octeți) și ''​4''​ pentru vector de dword (32 de biți, 4 octeți) 
 +  * ''​index''​ este indexul curent în cadrul vectorului 
 + 
 +</​note>​ 
 + 
 +<​note>​ 
 +Suma elementelor celor trei vectori trebuie să fie: 
 +  * ''​sum(byte_array):​ 575''​ 
 +  * ''​sum(word_array):​ 65799 ''​ 
 +  * ''​sum(dword_array):​ 74758117''​ 
 + 
 +</​note>​ 
 +==== Suma pătratelor elementelor ​dintr-un vector ====
  
 TODO TODO
  
-==== Numărul de numere negative și pozitive ​într-un vector ====+==== Numărul de numere negative și pozitive ​dintr-un vector ====
  
 TODO TODO
  
-==== Numărul de numere pare și impare ​într-un vector ====+==== Numărul de numere pare și impare ​dintr-un vector ====
  
 TODO TODO
laboratoare/laborator-05.txt · Last modified: 2016/01/09 18:27 by razvan.deaconescu