Questo sito ha bisogno della pubblicità per poter essere mantenuto. Gentilmente disabilita il blocco della pubblicità nel tuo browser per questo sito web.
Caricamento in corso...Caricamento in corso...
Caricamento in corso...

Input di un vettore, e stampa del doppio

.model small
.stack 100h
.data

vett db 100 DUP(?)
vett2 db 100 DUP(?)
nvett dw 0
n1 db 0
n2 db 0
.code
caricaVett proc
mov cx, lengthof vett
mov di, 0
mov ah, 1h
ciclo1:
int 21h

cmp al, 0dh
je fineciclo1


mov [vett+di], al
inc di

loop ciclo1

fineciclo1:
mov nvett, di
ret
caricaVett endp

 

put1310 proc
mov dl, 13d
mov ah, 2h
int 21h
mov dl, 10d
int 21h
ret
put1310 endp

 

stampaVett proc
mov cx, nvett
mov di, 0
mov ah, 2h
ciclo1:
mov dl, [vett+di]
int 21h
inc di
loop ciclo1
ret
stampaVett endp
num2string proc
mov bl, 10
div bl
mov n1, al
mov n2, ah

mov dl, n1
add dl, 30h
mov ah, 2h
int 21h

mov dl, n2
add dl, 30h
int 21h
ret
num2string endp

 

vettDopp proc
mov cx, nvett
mov di, 0

ciclo1:
mov ah, 0
mov al, [vett+di]
sub al, 48

mov bl, 2
mul bl
mov [vett2+di], al

inc di
loop ciclo1
ret
vettDopp endp

 

stampaVett2 proc
mov cx, nvett
mov di, 0

ciclo2:
mov ah, 0

mov bl, 2
mul bl
mov al, [vett2+di]

invoke num2string
inc di
loop ciclo2
ret
stampaVett2 endp


;
main proc
mov ax, @data
mov ds, ax

;
invoke caricaVett
invoke put1310
invoke stampaVett
invoke put1310
;invoke vettDopp
invoke put1310
invoke vettDopp
invoke stampaVett2


;
mov ax, 4c00h
int 21h
main endp
end main