TODOPIC

Microcontroladores PIC => Almacén del Assembler => Mensaje iniciado por: sebastian 100 en 28 de Abril de 2008, 00:00:43

Título: no puedo comparar dos registros en asembler??
Publicado por: sebastian 100 en 28 de Abril de 2008, 00:00:43
saludos gente,  :-/
estoy empezando con esto de los pics y me hice un programita para controlar un servo y otro para medir rpm
ahora los tengo que vincular, y lo que no puedo hacer es una simple operacion que en C o basic parece muy simple y es comparar el valor de 2 registros y actuar en consecuencia segun sea mayor igual o menor, este es el punto.
por ahi estuve viendo un IF Then else, pero en asembler que es el que estoy manejando no encuentro nada,
si alguien me tira una puntita para salir de este vasito de agua se los agradezco..
sebastian..
Título: Re: no puedo comparar dos registros en asembler??
Publicado por: firepic en 28 de Abril de 2008, 16:16:59
Amigo sebastian, recuerda que ensamblador es un programa de bajo nivel, no puedes hacer comparaciones en una sola sentencia como lo harías con C o Basic (que de hecho los compiladores lo que hacen es convertir esa única sentencia en las múltiples instrucciones en código ensamblador que sean necesarias).
Así que cada vez que quieras hacer una comparación deberás colocar los códigos que el amigo jcc40 te escribe. Básicamente, la técnica que se utiliza es ver el registro "status" del pic. Uno de esos bits es el "Z", que se coloca en 1 cada vez que el resultado de alguna operación da cero. El otro bit es el "C" o bit de acarreo, que se coloca en 1 cuando ocurre un acarreo, o en 0 si ocurrió un préstamo.
Revisa la DS para más detalles...
Saludos!  :mrgreen:
Título: Re: no puedo comparar dos registros en asembler??
Publicado por: Chrisbaf en 28 de Abril de 2008, 21:43:53
muy buena aclaracion firepic :)
Título: Re: no puedo comparar dos registros en asembler??
Publicado por: sebastian 100 en 28 de Abril de 2008, 21:59:53
gracias jcc40 y tambien para firepic!!!

muy clara la explicacion ya lo puse en practica, lo que no me quedó claro fue "revisa la DS para mas detalles", que es la DS?
seguro soy un burro pero no se que es....

estuve leyendo mucho este foro y la verdad que esta muy bueno, muy completo, y buenas respuestas
muchas gracias

saludos, desde el sur, banfield, bsas, argentina
Título: Re: no puedo comparar dos registros en asembler??
Publicado por: Leon Pic en 28 de Abril de 2008, 22:14:06
DS = Data sheet.

Lo puedes hacer desde la propia página del fabricante o utilizar sitios dónde reunan la mayoría. Una es www.datasheet.com