codice:
	.MODEL SMALL
.STACK 100h
.DATA
     M DW 2,5,8,-4,7,-21,3,-12,-10,-11,5,31,4,0,14,8,3,89,9,-56,-23,-45,-97,8,30 ;DEFINISCO MATRICE M
     DIM $-M     
     N equ 5                                        ;N=RIGHE DI M
     RC equ 2                                        ;RC= COLONNE DI R
     R DW 0,0,0,0,0,0,0,0,0,0        ;INIZIALIZZO MATRICE RISULTATO R
.START
.STARTUP
            SUB ESP,4       ;alloco spazio nello stack
            PUSH DWORD N
            PUSH DWORD DIM
            PUSH M
            CALL NOMEMETODO
            POP ECX   
NOMEMETODO:
            PUSH EBP               ;
            MOV EBP,ESP
            ADD EBP,8
            MOV EDI,[EBP]
            MOV EAX,0       ;in eax metto lo spazio occupato dalle righe (=5)
            MOV EBX,0        ; indice di colonna (m) che ogni volta incremento di 2
            MOV ECX,0        ;variabile di supporto "temp"      
            MOV ESI,[EBP+8]   ; ESI= N
            SHL ESI,1        ;tengo in esi N*2      ;
SCANSIONERIGA:
            CMP EBX, ESI      ;confronta indice colonne 
            JE CAMBIARIGA
            MOV DX,[EDI+EBX]   ;COPIO ELEMENTO MATRICE IN DX
            ADD EBX,2           ;incremento di 2 ebx
           ; .... analizzo elemento es CMP;IN DX DOVREI AD OGNI ITERAZIONE L'ELEMENTO DI M
           ;.... per esempio lo metto in R 
           JMP SCANSIONERIGA
CAMBIARIGA:
            CMP EAX,[EBP+4]
            JE FINE
            ADD EAX,ESI
            ADD EDI,EAX
            MOV EBX,0
            JMP SCANSIONERIGA
FINE:      
           MOV [EBP+16],ECX
           POP EBP
           RET 16