ciao,purtroppo a causa di forza maggiore non ho potuto utilizzare internet fino a oggi...cmq io ho provato ad apportare alcune modifiche che tu mi hai suggerito in questo modo:
LETTURA_STRINGA PROC NEAR
MOV BX,00h
MOV BX,MAX_LUNGH ;inizializza il contatore caratteri
NUOVA_LETT: MOV AH,08h ;servizio DOS 'Read Keyboard Char
INT 21h ;Without Echo'
CMP AL,ENTER ;se il tasto è ENTER,
JZ FINE_LETTURA ;termina la lettura
PUSH AX ;salva il registro AX
MOV AH,02h ;servizio DOS 'Character Output'
MOV DL,AL ;Carattere da stampare
INT 21h
POP AX ;ripristina il contenuto di AX
MOV [CODICE_TASTO+BX],AL ;Memorizza il tasto
INC BX ;Aggiorna il puntatore
LOOP NUOVA_LETT ;reitera fino a che CX=0
FINE_LETTURA: MOV [LUNGH_SEQU],BX
RET
LETTURA_STRINGA ENDP
STAMPA_BIN PROC NEAR
MOV DX,OFFSET BIN_MESS
CALL STAMPA_STRINGA
MOV BX,0
NEW: MOV DL,[CODICE_TASTO] ;LEGGE IL CODICE DEL TASTO
PUSH BX
MOV BX,[INDEX]
MOV [SEQUENZA+BX],DL
POP BX
INC BX
INC INDEX
MOV DH,00h ;CONTATORE DI BITS
CICLO_BINARIO: XOR AL,AL
SHL DL,01h
ADC AL,AL
CALL STAMPA_NUMERO
INC DH
JNZ CICLO_
RET
STAMPA_BIN ENDP
i problemi ora sono 2:
il primo è che non ho capito bene come modificare la procedura STAMPA_BIN e il secondo è che così come ho modificato il sorgente restituisce 80 volte zero. Naturalmente questi problemi sono causati dalla mia parziale ignoranza in questo linguaggio![]()
Riusciresti a darmi qualche dritta più a basso livello?magari facendomi vedere come modificare quello che tu dici...scusami ma ci sto sbattendo davvero la testa e te ne sarei davvero grato se riuscissi a darmi una mano