Programma Didattico - problema variabile vettore

di il
2 risposte

Programma Didattico - problema variabile vettore

Nel seguente codice la routine inchar prende in input un carattere da tastiera e lo inserisce nel registro AL.
Non capisco perchè nella seguente riga ho un errore di compilazione:
MOV %AL, messaggio(,CL,1)
La variabile o meglio il 'vettore' messaggio dovrebbe individuare un indirizzo di memoria il cui contenuto è rappresentato inizialmente da tutti zeri.
Se ho ben capito con questo identificatore faccio riferimento all'indirizzo di memoria di partenza del vettore per cui utilizzando l'indirizzamento definito con "registro indice" non capisco perchè dia errore il compilatore.

messaggio = prima locazione di memoria
CL= registro indice
1 = fattore di scala (ogni elemento è un byte)

messaggio + CL*1 = indirizzo di memoria dove voglio scrivere

Dove sbaglio?
.GLOBAL _main
.DATA
messaggio:	.FILL 200,1,0

.TEXT
_main:		NOP
		MOV 0, %CL		# contatore inserimenti carattere
ciclo:		CALL inchar
		MOV %AL, messaggio(,CL,1)	# salvo il char
		INC %CL
		CMP $10, %CL			# numero max char inseriti
		JB ciclo

2 Risposte

Devi accedere o registrarti per scrivere nel forum
2 risposte