User Tools

Site Tools


laboratoare:laborator-07

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 Both sides next revision
laboratoare:laborator-07 [2015/11/25 10:03]
catalin.vasile3004
laboratoare:laborator-07 [2015/11/25 10:05]
catalin.vasile3004
Line 271: Line 271:
 Uitaţi-vă ce FLAG-uri activeză instrucţiunea **[[http://​www.jegerlehner.ch/​intel/​IntelCodeTable.pdf|inc]]**. Uitaţi-vă ce FLAG-uri activeză instrucţiunea **[[http://​www.jegerlehner.ch/​intel/​IntelCodeTable.pdf|inc]]**.
 </​note>​ </​note>​
-==== [2p] 3. Suma elementelor (fără semn) ale unui vector ​==== +==== [2p] 3. Înmulţirea corectă a 2 numere de lungimi diferite ​==== 
-Pornind de la scheletul ​de cod următor, implementaţi suma elementelor ale unui vector folosind ​**registre de 8 biţi (obligatoriu)**:​ +Scrieţi o secvenţă ​de cod astfel încât să înmulţiţi **nr1** cu **nr2** şi să depuneţi rezultat în variabila **result**. **Trebuie** să folosiţi ​registre de 8 biţi. 
-<file asm sum.asm>+<file asm mul.asm>
 %include "​io.inc"​ %include "​io.inc"​
 section .data section .data
-    ​v: dB 1256, 93, 44, 55, 23, 44, 71, 43 +    ​nr1: dB 0x900x02 ; =656 
-    ​lendd $-v +    ​nr2dB 0x04 
-    ​sumdW 0+    ​resultdw 0
 section .text section .text
 global CMAIN global CMAIN
 CMAIN: CMAIN:
-    ; TODO sum vector of BYTE elements into "sum" ​WORD variable+    ; TODO multiply nr1 by nr2 using only 8bit registers 
 +    ;      store the result in the "result" variable
     ​     ​
-    PRINT_UDEC 2, sum ; should be 441 if result is correct+    PRINT_UDEC 2, result ​; should be 2624
     ​     ​
     xor eax, eax     xor eax, eax
     ret     ret
 </​file>​ </​file>​
-==== [2p] 4. Înmulţirea corectă a 2 numere de lungimi diferite ​==== +==== [2p] 4. Suma elementelor (fără semn) ale unui vector ​==== 
-Scrieţi o secvenţă ​de cod astfel încât să înmulţiţi **nr1** cu **nr2** şi să depuneţi rezultat în variabila **result**. **Trebuie** să folosiţi ​registre de 8 biţi. +Pornind de la scheletul ​de cod următor, implementaţi suma elementelor ale unui vector folosind ​**registre de 8 biţi (obligatoriu)**:​ 
-<file asm mul.asm>+<file asm sum.asm>
 %include "​io.inc"​ %include "​io.inc"​
 section .data section .data
-    ​nr1: dB 0x900x02 ; =656 +    ​v: dB 1256, 93, 44, 55, 23, 44, 71, 43 
-    ​nr2dB 0x04 +    ​lendd $-v 
-    ​resultdw 0+    ​sumdW 0
 section .text section .text
 global CMAIN global CMAIN
 CMAIN: CMAIN:
-    ; TODO multiply nr1 by nr2 using only 8bit registers +    ; TODO sum vector of BYTE elements into "sum" ​WORD variable
-    ;      store the result in the "result" variable+
     ​     ​
-    PRINT_UDEC 2, result ​; should be 2624+    PRINT_UDEC 2, sum ; should be 441 if result is correct
     ​     ​
     xor eax, eax     xor eax, eax
laboratoare/laborator-07.txt · Last modified: 2015/11/30 22:53 by razvan.deaconescu