Como saber que número es mayor?

#1
Buen dia a todos.

Necesito realizar un programa en assembler uso MPLAB, dicho programa debe saber cuál de dos números es el mayor o si son iguales, intente usar CMP, JL ..., pero MPLAB no me los reconoce como funciones del programa agredeceria que me pueden colaborar, o darme ideas para yo desarrollarlo, es para el PIC16F877A.

Muchas gracias.
 
#2
Buen dia a todos.

Necesito realizar un programa en assembler uso MPLAB, dicho programa debe saber cuál de dos números es el mayor o si son iguales, intente usar CMP, JL ..., pero MPLAB no me los reconoce como funciones del programa agredeceria que me pueden colaborar, o darme ideas para yo desarrollarlo, es para el PIC16F877A.

Muchas gracias.
Solo se dispone de 35 instrucciones para la gama media PIC16Fxx

Espero que esto te ayude:
MPLAB Ejercicio de comparación

saludos.
 
#3
Hmmm ya, entonces es por eso que no me reconoce estas instrucciones, te pregunto donde puedo encontrar que instrucciones soporta la linea de los PIC16Fxx
 
#4
Es muy sencillo en ensamblador pero no recuerdo que bits habia que chequear. En el adjunto (por ahí abajo) Tienes una montonada de ejemplos incluido el de comparación. Con buscar el ejemplo apropiado lo solucionas. Cuenta si ha sido así.
Saludos

las intrucciones las tienes en el datasheet del micro que uses. pase uno traducido que igual rula por alguna sección. de no estar pidela y la paso al moderador pa que la suba ya que pesa un poco.
 

Adjuntos

Última edición:
#5
Hmmm ya, entonces es por eso que no me reconoce estas instrucciones, te pregunto donde puedo encontrar que instrucciones soporta la linea de los PIC16Fxx
En todos los datasheet (hoja de datos) de todos los PIC, aquí PIC16F87xA , siempre en el ítem "INSTRUCTION SET SUMMARY".
El asm no es lo mismo en todo, por decir el asm para los PIC de microchip no son compatibles con el asm de los AVR de Atmel o peor aún al asm de los 8051...

Curso ASM desde cero

saludos.
 
#6
Creo haber leido que se trataba del 16F877 que si es compatible con el 16Fxx y 16Fxxx. Igual me falla la vista. El PC lo tengo desenfocado para poder ver bien sin gafas y en algunos lados del monitor no me llega. Por cierto son compatibles con los 18Fxxxx y este tiene mas.
Saludos
 
#7
Ok.

Muchas gracias a todos por sus respuestas, me sirivieron mucho finalmente lo hice comprobando el bit z y el bit c del registro status como en el ejemplo de ByAxel.

Muchas gracias a todos y por los ejemplos
 
#8
Ecj, para saber qué número es mayor en microcontroladores PIC16 debes hacer una resta con la instrucción SUBWF que resta el valor de W al valor del registro F y después checar la bandera Z del registro STATUS con la instrucción BTFSS o BTFSC. Si W es mayor que F el valor de Z será igual a 1, si F es mayor Z será igual a 0.
 

Temas similares

Arriba