He usado el primer método varias veces, aunque dos nombres para el mismo byte son algo que se debe evitar a menos que realmente haya alguna ventaja.
Desafortunadamente, MPASM lanza advertencias para algunas cosas perfectamente normales y útiles. Puede desactivar selectivamente las advertencias molestas por el número de advertencia. Supongo que debo haberlo hecho hace mucho tiempo en mi código de configuración ya que no recibo esa advertencia.
No me gusta usar #define porque, al igual que en C, es solo una sustitución de cadena. El ensamblador reemplaza una cadena por otra y no sabe nada más que eso. El primer método es mejor ya que el ensamblador entiende que el símbolo es la dirección de una variable.
Otro problema con su código es que está utilizando un orden de bytes inusual. En una máquina de 8 bits, el orden de bytes de las variables muli-byte depende de usted. Sin embargo, hay algunos casos en los que los valores de datos nativos son más grandes que 8 bits, y el hardware del PIC asume que se almacenan en el orden de byte más significativo al menos significativo. Así es como también se escriben las bibliotecas. Debe usar el primer orden de bytes bajos a menos que haya una razón específica y especial para no hacerlo. Por ejemplo, he almacenado las direcciones IP en orden de bytes alto a bajo porque así es como se envían y reciben en el protocolo IP. Pero en todos estos casos debe haber un comentario que marque el hecho de que el orden de bytes es opuesto al orden estándar esperado.
También creo que nombrar cada byte de una variable de múltiples bytes agrega más confusión debido al desorden de lo que los nombres adicionales podrían ayudar. Por ejemplo, defino variables de múltiples bytes como esta:
myvar res 4 ;32 bit integer
En ese caso, me refiero a hacer siempre referencia a bytes individuales utilizando el nombre de la variable más el desplazamiento explícito del byte, incluso cuando ese desplazamiento del byte es 0. Por ejemplo:
; Increment MYVAR by one.
;
banksel myvar
incf myvar+0 ;increment the low byte
movlw 0
addwfc myvar+1 ;propagate carry to higher bytes
addwfc myvar+2
addwfc myvar+3
La sintaxis "+ n" alerta a los lectores sobre el hecho de que se trata de una variable de múltiples bytes, y luego a qué byte se accede.