Autor Tema: comparar el contenido de dos registros  (Leído 2023 veces)

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

Desconectado lolos123

  • PIC12
  • **
  • Mensajes: 53
comparar el contenido de dos registros
« en: 31 de Marzo de 2005, 13:19:00 »
Hola que tal a ver si me pueden orientar un poquito.

Necesito comprobar si el contenido de un registro  es menor que 10, si es menor se hace una parte de codigo y si es mayor o igual pues se hace otra parte de codigo distinta.

Estoy trabajando en ASM en un 16f876.

Yo había pensado en meter en un registro el valor 10 y compararlo con el otro usando la directiva if pero no se si se puede usar o si la esoy usando mal porque no funciona.

Hacía algo asíEnfurruñadoregistro y diez son dos registros)

if registro<diez
....(codigo)
else
....(codigo)
endif

Bueno agradezco cualquier sugerencia y si no se puede hacer con if, else
como podría hacerlo.

Desconectado fenix_jn

  • PIC18
  • ****
  • Mensajes: 418
RE: comparar el contenido de dos registros
« Respuesta #1 en: 31 de Marzo de 2005, 20:37:00 »
Creo q la directiva if se usa solo para indicarle al compilador lo q debe hacer no al programa que reside en el pic, si deseas comprobar el valor de un registro contra un valor fijo usa esta rutina:

Codigo:

     movf     <reg a leer>, w
     xorlw     .10
     btfss     status, c
     goto     <falso>          ;Ira a esta rutina si el valor es distinto de 10
     goto     <verdadero> ;Ira a esta rutina si el valor es igual a 10



para comprobar si un valor es menor o mayor al otro es casi lo mismo:

Codigo:

     movf     <reg a leer>, w
     sublw     .10
     btfss     status, c
     goto     <falso>          ;Valor es mayor a 10
     goto     <verdadero> ;Valor es menor a 10



En esta rutina lo q se hace es verificar si el valor de la resta genera un overflow de 255 (por lo q el bit C de status se activa)

Desconectado lolos123

  • PIC12
  • **
  • Mensajes: 53
RE: comparar el contenido de dos registros
« Respuesta #2 en: 01 de Abril de 2005, 13:56:00 »
¡MIL GRACIAS fenix_in !

Efectivamente luego se me ocurrió eso de restar pero yo lo hice un poco mas largo, voy a probar ahora mismo de esa manera.

¿Qué haríamos los principiantes sin gente como tu?

Gracias por tu tiempo.