Tengo un programa en ensamblador como este:
montones de código
......
.ORG $7000 ;; (o en algún lugar)
atext: .DB "this is a test string 1"
.ALIGN EVEN
Btext: .DB "this is a test string 2"
- PREGUNTA: Suponiendo que la longitud del texto 1 es IMPAR, ¿es posible ALINEAR Btext usando algún tipo de comando ALIGN (como arriba)? El ensamblador de Atmel (studio 6.2) dice NO, pero me pregunto....
(Problema fácilmente resuelto mediante alineación manual como esta:
atext: .DB "this is a test string 1",0,0
// 01234567890123456789012 3 4
Y añadiendo ceros donde sea necesario para alinear.
- PREGUNTA:
Ahora quiero escribir el texto en mi monitor serie.
Entonces hago esto;
ldi zh,High (texto1)
ldi zl,LOW (texto1)
push ZH
push ZL
lsl ZL
rol ZH ;; para asegurar LPM luego
WRTE: lpm R16,Z+ ; obtener byte/dato
cpi R16,0
breq wrte2
call output
rjmp wrte
wrte2:
pop zl
pop zh
ret
Ahora me pregunto: Si uso
......
WRTE: LD R16,Z+ ; obtener byte/dato /// MAL - NO
.....
¿Qué obtendré en R16?