Ciao a tutti. Sto facendo un programmino assembly, e mi manca poco alla conclusione. Tuttavia non capisco bene dove sbaglio con i puntatori. Mi spiego meglio.
Io ho memorizzato una stringa di parole qui:
SUB_STR1 DB MAX_LUNGH_STR DUP(?)
Ho memorizzato la lunghezza di questa stringa qui:
LUNGH_SSTR1 DB ?
E memorizzo una lettera che mi serve per poi fare un controllo dopo qui: LETTERA_PREC DB ?


Quello che mi interessa è prendere da SUB_STR1, che contiene ad esempio la stringa ‘abc’, la lettera ‘b’ e memorizzarla in LETTERA_PREC.

Io ho fatto uno cosa di questo tipo:

SUB [LUNGH_SSTR1],1

PUSH AX

PUSH DX

MOV DX,[LUNGH_SSTR1]

SUB DX,1

MOV SI,DX

MOV AX,SUB_STR1[SI]

MOV [LETTERA_PREC],AX

POP DX

POP AX

Ma non funziona; il compilatore dice ‘Operand types do not match’ alle righe delle istruzioni:
'MOV DX,[LUNGH_SSTR1]'
'MOV AX,SUB_STR1[SI]'
'MOV [LETTERA_PREC],AX'

Grazie a tutti coloro che prenderanno in considerazione il mio problema.