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.