Giustissimo,quindi in linea di massima se mi viene chiesto di calcolare la lunghezza di una stringa cerco il carattere null Ho svolto l'esercizio come da te suggerito e per una verifica ho preferito stampare a video il risultato,solo che non stampo a video solo la lunghezza (che è giusta) ma anche la I ? xD Ti posto il codice così gli dai un occhiata,scusa ancora il disturbo
.MODEL SMALL
.STACK 100H
.DATA
FRASE DB 8 DUP (?)
CONT DB ?
DOM1 DB 'INSERISCI LA FRASE','$'
RIS1 DB 'LA FRASE CHE HAI INSERITO E ','$'
ACAPO DB 13,10,'$'
.CODE
.STARTUP
MOV AX,@DATA
MOV DS,AX
MOV SI,0 ;XOR SI,SI
MOV AH,09H
LEA DX,DOM1 ;LEA=LOAD EFFECTIVE ADDRESS
INT 21H
CICLO:CMP SI,7
JG FINCICLO
MOV AH,01H
INT 21H
CMP AL,0DH ;0DH = INVIO DELLA TASTIERA,VUOL DIRE CHE HO TERMINATO
JE FINCICLO
MOV FRASE[SI],AL
INC SI
JMP CICLO
FINCICLO:MOV AH,09H
LEA DX,RIS1
INT 21H
MOV SI,0
CICLO2: MOV AH,02H
MOV DL,FRASE[SI]
INT 21H
INC SI
CMP SI,7
JLE CICLO2
XOR DI,DI
CICLO3: CMP FRASE[DI],000
JE FINESE
INC DI
INC CONT
JMP CICLO3
FINESE: ADD CONT,30H
MOV AH,02H
MOV DL,CONT
INT 21H
JMP FINE
FINE: NOP
MOV AH,4CH
INT 21H
END