Ho modificato quelle parti, ma non va. Ho notato comunque che in AL e in AH escono sempre gli stessi numeri ovvero 65 e 0 sia durante la somma che durante la divisione e anche cambiando i valori. Potrebbe essere che sbaglio a puntare a data?
Inserisco il codice:
Codice:
; calcolo media di 4 cifre (0..9) inserite in un vettore definito nel segmento dati
data segment
numeri db 2,2,2,2 ; cifre definite di cui calcolare la media
quattro db 4; dividendo
data ends
code segment
assume CS:CODE,SS:STACK,DS:DATA
inizioprogramma:
MOV AX,DATA
MOV DS,AX
MOV AX,0; inizializzo ax
MOV SI,0; inizializzo il contatore si
MOV BX,offset numeri; carico l'offset nel vettore BX
sommatot:
CMP SI,4
JE dividi; se si e' uguale a 4 salta a dividi
ADD AL,byte ptr[bx+si] ; sommo i numeri
INC SI; incrementa il contatore si
JMP sommatot ;salta sempre a sommatot
dividi:
DIV quattro ; divido AX:QUATTRO
code ends