Autor Tema: Comparar 2 numeros  (Leído 7558 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Vala220805

  • PIC10
  • *
  • Mensajes: 18
Comparar 2 numeros
« en: 27 de Octubre de 2016, 19:46:37 »
Buenas tardes a todos
Quiero hacer un codigo que me lea de un teclado 2 numeros de 2 digitos y despues me los compare para saber si el primero es mayor, menos o igual que el segundo. se que haciendo uso del registro STATUS puedo hacer lo de saber si es o no es igual, mas aun no encuentro la logica para comparar si es menor o mayor, ojala pudieran ayudarme. P.D uso ensamblador

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Comparar 2 numeros
« Respuesta #1 en: 27 de Octubre de 2016, 23:14:12 »
usando SUBWF tenes que:

Código: [Seleccionar]
C = 0 si W mayor f
C = 1 si W menor o igual que f
(Esto es sacado del datasheet, explicado en la instruccion SUBWF y SUBLW)

entonces... Supongamos que en W tengo el primer numero ingresado y comparo con f que es el segundo.

- Realizo el SUBWF.
- Pregunto por STATUS, C
  Si C = 0, significa que el primero es mayor que el segundo. Es decir aca irias al codigo de que es mayor
  Si C = 1, significa que puede ser igual o mayor
- Pregunto por STATUS, Z ( sin hacer ninguna otra operacion que me modifique las banderas)
  Si Z = 1, significa que el primero es igual al segundo, aca salto a la rutina de que son iguales
  Si Z = 0, significa que no se cumplio ninguna de las anteriores, por lo tanto el primero es menor que el segundo

En codigo, suponiendo que los registros donde se guarden los numeros se llamen Primero y Segundo respectivamente, seria algo asi:

Código: ASM
  1. MOVF    Primero, W
  2.         SUBWF   Segundo, W
  3.         BTFSS   STATUS, C
  4.         GOTO    Es_Mayor
  5.         BTFSC   STATUS, Z
  6.         GOTO    Es_Igual
  7.         GOTO    Es_Menor

Desconectado Vala220805

  • PIC10
  • *
  • Mensajes: 18
Re:Comparar 2 numeros
« Respuesta #2 en: 28 de Octubre de 2016, 00:17:53 »
Gracias por responder KILLERJC, soy el mismo del otro post que quiere comparar 2 numeros, lo siento por hacer diferentes post, debi modificar solo este, pero no sabia que se podia, gracias nuevamente KILLERJC