Tengo que crear un archivo ASM para el PIC18F452 que hace lo siguiente:
(a) define la etiqueta MapName como el primero de los 8 registros consecutivos que contienen una cadena terminada en nulo de no más de 7 caracteres. (b) acceder a una variable entera sin signo de 8 bits llamada MapIndex que se declaró en un archivo C. (c) defina una función ASM getMapChar que se puede llamar desde C usando la función prototype char getMapChar (void) . La función debe devolver el carácter apropiado cuando el valor de MapIndex es < = 7 o el valor 255 si MapIndex es > 7. (d) haga que las etiquetas MapName y getMapChar sean accesibles a un archivo C externo.
Mi código hasta ahora se muestra a continuación:
; Configuration word : WDT off, power-up timer on, code protect off, RC oscillator
list = p18f452
MapName equ 0x20
MapName1 equ 0x21
MapName2 equ 0x22
MapName3 equ 0x23
MapName4 equ 0x24
MapName5 equ 0x25
MapName6 equ 0x26
MapName7 equ 0x27
CurrentChar equ 0x28
extern MapIndex
org 0x00
goto getMapChar
getMapChar movlw 0x00
movwf MapName7
GLOBAL getMapChar
GLOBAL MapName
END
Ya he hecho las partes (a), (b) y (d) pero tengo algunos problemas para escribir el código que se mueve a través de cada uno de los registros consecutivos automáticamente utilizando el valor de MapIndex. ¿Podría alguien ayudarme por favor? Sería muy apreciado.