ASM Dudas en instrucción CPFSEQ

#1
Tengo un programa que compara dos variables utilizando la instruccion cpfseq, el problema es que siempre me da la opcion1




Registros del Micro

CONFIG FOSC=HS
CONFIG PLLDIV=5
CONFIG PWRT=ON
CONFIG BOR=SOFT
CONFIG VREGEN=ON
CONFIG WDT=OFF
CONFIG MCLRE=OFF
CONFIG PBADEN=OFF
CONFIG LVP=OFF
CONFIG XINST=OFF
CONFIG DEBUG=OFF

Variables
MODULO EQU 0x0F10 ;Direccion del modulo
DATA0 EQU 0x0F11 ;Bus de datos PC

BUFFER EQU 0x0F1C ;Dirrecion del buffer

PARTE EN LA QUE FALLA

movlw MODULO ;Carga modulo en w
cpfseq BUFFER ;Compara modulo con buffer
GOTO OPCION1
GOTO OPCION2


Siempre sale por opcion1.

¿Puede ser un problema al declarar las variables?, basta con escribir 0x10 o es necesario escribir
0x0010?

agradeciendo de antemano vuestra colaboracion
 
Última edición:
#2
Hola, estoy intentando hacer la programación del "Auto Increíble", basandome en este video
, pero no sé qué función de lenguaje ensamblador para Microcontrolador Freescale MC9S08S8 sea un equivalente de la función usada para hacer la comparación CPFSEQ, intenté con CMP y luego BLE, pero no funciona, también con CBEQA, y parece funcionar pero no del todo:

mainLoop:
MOV #$FF, PTBDD
INC PTBD
BRA DELAY


COMPARA:
LDA PTBD
CBEQA #$80, IZQ


BRA COMPARA2

COMPARA2: LDA PTBD
CBEQA #$01, DER

BRA COMPARA



DELAY: MOV #$01, VAR1

CBEQA #$01, DER



IZQ: LSL PTBD
BRA DELAY
BSR COMPARA



DER: LSR PTBD
BRA DELAY
BRA mainLoop


NOP
feed_watchdog

Ese código lo que logré que al debugear hiciera es ir corriendo el bit desde el LSB al MSB del puerto B, pero hasta ahí llega, no se regresa, y al momento de implementarlo no hace nada, a menos que tenga el BDM conectado :/ ¿Qué estoy haciendo mal?
Me es urgente, tengo hasta hoy en la noche o mañana muy temprano, mil gracias
 

Temas similares

Arriba