.MODEL SMALL .STACK .DATA VETT DB 10 DUP(?) .CODE .STARTUP CALL LEGGI MOV DL,0AH ;SALTO UNA LINEA DOPO AVER PRESO I VALORI MOV AH,02H INT 21H MOV DL,0DH INT 21H CALL STAMPA MOV AH,04CH INT 21H LEGGI PROC PUSH SI ;SALVO I REGISTRI PUSH CX PUSH AX MOV SI,0 MOV CX,10 MOV AH,01H CICLO1: INT 21H MOV VETT[SI],AL INC SI LOOP CICLO1 POP AX ;RICARICO I REGISTRI POP CX POP SI RET LEGGI ENDP STAMPA PROC PUSH DX PUSH AX PUSH CX PUSH SI PUSH DX ;SALVO TUTTI I REGISTRI MOV AH,02H MOV CX,10 MOV SI,0H CICLO2: PUSH CX ;PRIMO CICLO, MOV BL,VETT[SI] SUB BL,030H MOV CL,BL CMP CL,0 JE CONT CICLO3: MOV DL,02AH ;CICLO CHE STAMPA GLI * INT 21H LOOP CICLO3 MOV DL,020H ;STAMPA LO SPAZIO INT 21H CONT: MOV BL,VETT[SI] ;STAMPA IL NUMERO PRESO DA TASTIERA MOV DL,BL INT 21H MOV DL,0AH ;VA A CAPO INT 21H MOV DL,0DH ;TORNA AD INIZIO LINEA INT 21H POP CX INC SI LOOP CICLO2 POP DX ;RICARICO I REGISTRI POP SI POP CX POP AX POP DX RET STAMPA ENDP END