TODOPIC
Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: groundman en 15 de Enero de 2014, 19:57:26
-
hola.estoy haciendo unas pruebas con las definiciones y hay algo que no entiendo.
si pongo: #define TABLA_CRCs 0x5000
y luego pongo: movlw TABLA_CRCs el valor que carga en W es 0x00 pero lo que yo quiero es obtener el byte alto. 0x50
hay alguna forma de hacerlo?
-
Hola,
para obtener el byte alto puede usar la directiva HIGH, es decir, quedaria
movlw HIGH TABLA_CRCs,
Saludos
-
muchisimas gracias.me has salvado de volverme loco. :D
-
hola sander.he estado haciendo pruebas con la directiva HIGH.y se me ha ocurrido hacer esto:
#define MENSG1 0X2000
#define MENSG2 MENSG1 + .36
#define MENSG3 MENSG2 + .34
#define MENSG4 MENSG3 + .34
#define MENSG5 MENSG4 + .34
#define MENSG6 MENSG5 + .34
resulta que si dispongo:
org MENSG1
org MENSG2
org MENSG3... etc
todo el codigo debajo de estas etiquetas se coloca correctamente.
pero si quiero usar la directiva como:
movlw HIGH MENSG1 se carga en W el valor 0x20. pero si pongo movlw HIGH MENSG2 da 0x44. cuando deberia de dar 0x20