Dati segment
vett db 10 dup(0)
primo db ?
secondo db ?
terzo db ?
somma db 00d
dieci db 10d
resto db ?
di db 00d
inserire db "Inserisci il valore",0dh,0ah,"$"
Dati ends
Sistema SEGMENT STACK
DW 100 DUP (?)
Top LABEL WORD
Sistema ENDS
Codice SEGMENT
;definizione dei segmenti
ASSUME CS:Codice, SS:Sistema, DS:Dati, ES:Dati
Inizio: ;inizializzazione dei registri di segmento
MOV AX,Sistema
MOV SS,AX
LEA AX,Top
MOV SP,AX
MOV AX,Dati
MOV DS,AX
MOV ES,AX
mov cx,05d
ciclo:
lea dx,inserire
mov ah,09h
mov al,00h
int 21h
mov ah,01h
mov al,00h
int 21h
sub al, 48d
mov [vett+di],al
inc di
loop ciclo
mov di,00d
mov al,[vett+di]
mov primo, al
mul al
mov ah,00d
div dieci
mov al,primo
add ax,48d
add somma,al
mov ah,00d
inc di
mov cx,04d
ciclo2:
mov al,[vett+di]
mov primo, al
mul al
mov ah,00d
div dieci
mov resto,ah
mov ah,00h
mov al,primo
add ax,48d
add somma,al
inc di
inc di
loop ciclo2
mov al,somma
mov dl,al
mov ah,02h
mov al,00h
int 21h
mov al,00h
mov ah,4ch
int 21h
questo è il mio programma solo che non mi da in out put la somma dei quadrati di in dice dispari