Autor Tema: Como comparo dos Bytes  (Leído 2292 veces)

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

Desconectado lolos123

  • PIC12
  • **
  • Mensajes: 53
Como comparo dos Bytes
« en: 26 de Enero de 2005, 13:21:00 »
Necesito hacer muchas comparaciones entre datos y queria saber si hay alguna forma facil de hacerlas.
Los datos son Bytes y he visto que se puede hacer así:

MOVF A,W
XORWF B,W
BTFSC STATUS,Z
GOTO IGUAL

donde A y B son los datos.

¿Se puede hacer de otras forma mejor?

¿If sirve para esto?lo he intentado pero o la he usado mal o no sirve.
  if (A==B)
  ......
 else
 ....

¿no vale?¿ no???

No se si ha quedado claro ,pero bueno agradezco, vuestros comentarios y ayuda.

Gracias por vuestro tiempo.

Desconectado carlyvalente

  • PIC16
  • ***
  • Mensajes: 108
RE: Como comparo dos Bytes
« Respuesta #1 en: 18 de Febrero de 2005, 03:18:00 »
Primero: Las primeras instrucciones que has escrito son correctas y son en asembler.
Es para comparar si dos valores son iguales. (o diferentes)
También puedes hacerlo así:
movf a,w
subwf b,w
btfsc STATUS,Z
goto igual

Con el carry:

si a < b ir a menor_que
movf b,w
subwf a,w
btfss STATUS,C
goto menor_que

si a > o = b ir a mayor_o_igual
movf b,w
subwf a,w
btfsc STATUS,C
goto mayor_o_igual

si a < o = b ir a menor_o_igual
movf a,w
subwf b,w
btfsc STATUS,C
goto menor_o_igual

si a <> b ir a distinto
movf b,w
subwf a,w
btfsc STATUS,Z
goto distinto

segundo: lo que has escrito del "if" es C. y aunque no conozco casi nada de C creo que está mal escrita la sentencia. Pregunta a los genios del C.


 

anything