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