Te Coloco otro ejemplo, ahora un poco más gráfico:
Veamos que la parte enmarcada en rojo utiliza la intrucción PAGESELW para colocar el valor H'03' en el PCLATH.
Al momento de sumar POINTER_LOW al PCL, el PCLATH deberia tener cargado el valor H'04' y NO H'03'.
Lo que busco es hacer un programa en base a directivas que lea la dirección de FIN_ETIQUETA y defina si es mayor
a H'0400' (para este caso), para ajustar ETIQUETA automáticamente a esta dirección (H'0400') , y que rellene el espacio
vacio con NOP, tal y como se ve en la segunda imagen (sección enmarcada en verde)
IMAGEN 1
IMAGEN 2
Espero que alguien me pueda ayudar, Gracias.
Dejo la sección de código, por si quieren hacer la prueba:
;Codigo
;
;
;
ETIQUETA
PAGESELW $
movfw POINTER_LOW
addwf PCL,F
GOTO LABEL_1
GOTO LABEL_2
GOTO LABEL_3
GOTO LABEL_4
FIN_ETIQUETA
;Codigo
;
;
;
LABEL_1
nop
nop
GOTO END_LABEL
LABEL_2
nop
nop
GOTO END_LABEL
LABEL_3
nop
nop
GOTO END_LABEL
LABEL_4
nop
nop
GOTO END_LABEL
END_LABEL