Salve ho un piccolo problemino nel ordinare un vettore, mi da come out put dei simboli assurdi.
Codice:
Dati SEGMENT
di db 00d
app db 00d
vett db 10 dup(0)
dieci db "Inserire 10 valori",0dh,0ah,"$"
elemento db "Inserire 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
;programma
lea dx,dieci
mov ah,09h
mov al,00h
int 21h
mov cx,10d
ciclo:
lea dx,elemento; stringa
mov ah,09h
mov al,00h
int 21h
mov ah,01h ; input
mov al,00h
int 21h
sub al, 48d
mov [vett+di],al
inc di
mov dl,13
mov ah,02h
int 21h
mov dl,10d
mov ah,02h
int 21h
loop ciclo
mov dl,13
mov ah,02h
int 21h
mov dl,10d
mov ah,02h
int 21h
;inizio scambio
mov di,00d
mov cx,10d
ciclo2:
mov al,[vett+di]
mov bl,al
mov cx,09d
c4:
inc di
mov al,[vett+di]
dec di
cmp bl,al
jle else
mov [vett+di],al
inc di
mov [vett+di],bl
jmp fine
else:
mov [vett+di],bl
inc di
mov [vett+di],al
fine:
loop c4
mov al,[vett+di]
add al,48d
mov ah,02h
mov dl,al
inc di
mov al,00h
int 21h
loop ciclo2
mov al,00h
mov ah,4ch
int 21h
codice ends
end inizio
non riesco a trovare l'errore che li comporta.