|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
[Assembly 8086] Somma colonne matrice
Ciao a tutti, devo fare un programma che sia in grado di sommare gli elementi delle colonne di una matrice NxN e memorizzarne il risultato in un vettore di N elementi .
Siccome sto facendo da autodiatta, e le risorse didattiche scarseggiano, non ho la più pallida idea se ho scritto qualcosa di sensato o meno. Io penso di si, questo è quanto: Codice:
;You are asked to develop both an 8086 main program and an assembly procedure ;that performs the sum of the elements of each column of a two-dimension 10x10 ;array (matrix) ;The matrix is composed by 8bit signed integers, the sums array is composed by ;16bit signed integer. .MODEL small .STACK ROW EQU 3 COL EQU 3 .DATA matrix DB -9,3,6 DB 9,9,3 DB -3,6,9 array DW ROW DUP (0) .CODE .STARTUP XOR AX,AX XOR BX,BX XOR CX,CX XOR DX,DX XOR SI,SI XOR DI,DI MOV CX,ROW cycle2: ADD AL, matrix[BX][SI] INC BX CMP BX, ROW JB cycle2 cycle12: MOV array[SI], AX INC SI LOOP cycle2 MOV CX,ROW XOR SI,SI XOR AX,AX stampa1: MOV AH,2 CMP array[SI],0 JL stmpNeg stampa2: INC SI LOOP stampa1 stmpNeg: MOV DL, '-' INT 21H MOV DX, array[SI] INT 21H JMP stampa2 .EXIT END Se la matrice è la seguente: Codice:
-9,3,6 9,9,3 -3,6,9 - Aggiungo a 0 -9 {Primo passo, -9 è F7 in hex} - Aggiungo a -9 9 {Secondo passo 9 è tale in hex} Invece al secondo passo mi aggiunge FA ovvero -6 ( credo ) che nella matrice nemmeno esiste... Come devo fare per spostarmi correttamente tra gli elementi della matrice? La matrice è definita correttamente? Perchè non posso usare come indici della matrice SI e DI assieme ma solo uno dei due? Kwb
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:29.



















