desktop

ASM Dudas en instrucción CPFSEQ

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:
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
 
Atrás
Arriba