# Como saber que número es mayor?



## Ecj (Oct 20, 2010)

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.


----------



## ByAxel (Oct 20, 2010)

Ecj dijo:


> 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.


----------



## Ecj (Oct 20, 2010)

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


----------



## El nombre (Oct 20, 2010)

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.


----------



## ByAxel (Oct 20, 2010)

Ecj dijo:


> 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.


----------



## El nombre (Oct 20, 2010)

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


----------



## Ecj (Oct 20, 2010)

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


----------



## Protoboard (Oct 20, 2010)

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.


----------

