Microcontroladores PIC en Linux.
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

[Resuelto]Ayuda XORLW

2 participantes

Ir abajo

[Resuelto]Ayuda XORLW Empty [Resuelto]Ayuda XORLW

Mensaje por Iader Camilo Miér 4 Sep 2013 - 5:16

Saludos,

Tengo una pregunta del siguiente codigo:



Código:
movlw   .1
movwf   K; K es una variable previamente declarada

BUCLEFOR:
   ;Instrucciones      
   
   incf   K, F; incrementa k en 1
   movf   K, W; pasa lo que esta en K para W
   xorlw   .10: aqui noentido lo que hace segunse hace la orepacion logica xor cn W y .10
   btfss   STATUS,Z; tampoco entiendo
   goto   BUCLEFOR
en codigo anterior es una forma de hacer un ciclo for de 1 a 10, no entiendo por que usa a xorlw y a status y ese registro Z que significa?

Iader Camilo
Nuevo Usuario
Nuevo Usuario

Mensajes : 7
Fecha de inscripción : 02/09/2013
Edad : 33
Localización : Colombia

Volver arriba Ir abajo

[Resuelto]Ayuda XORLW Empty Re: [Resuelto]Ayuda XORLW

Mensaje por WaRaW Jue 5 Sep 2013 - 16:07

Bueno, para intentar dejarlo claro, K seria tu variable de control....como bien has dicho el ciclo estara mientras K toma los valores de 1,2,3...10. ahora btfss significa Bit Test File Skip Set pero en ya en cristiano nos dice que cuando el bit que este evaluando sea igual a 1 va a brincar la instrucción que tenga debajo pero si el bit que evalúa es cero simplemente seguirá ejecutando la siguiente linea de código que en este caso es un salto a la etiqueta "BUCLEFOR" y la operación xor es para evaluar la condición ....si haces xor entre dos num. binarios cualquiera diferentes el resultado sera diferente de cero por lo que el bit Z del registro status sera 0, pero si tu haces el una operacion xor con dos números iguales el resultado sera cero y esto cambiara el valor del bit Z del registro status. es como si fuera una condicion "si"...te recomiendo este enlace para que veas el funcionamiento o en la hoja de datos de los micros creo que también venia la explicación de cada comando risc. comandos ensamblador.

espero te resuelva la duda, saludos.

WaRaW
Participante
Participante

Mensajes : 27
Fecha de inscripción : 18/04/2010

Volver arriba Ir abajo

[Resuelto]Ayuda XORLW Empty Re: [Resuelto]Ayuda XORLW

Mensaje por Iader Camilo Jue 5 Sep 2013 - 17:57

WaRaW escribió:Bueno, para intentar dejarlo claro, K seria tu variable de control....como bien has dicho el ciclo estara mientras K toma los valores de 1,2,3...10. ahora btfss significa Bit Test File Skip Set pero en ya en cristiano nos dice que cuando el bit que este evaluando sea igual a 1 va a brincar la instrucción que tenga debajo pero si el bit que evalúa es cero simplemente seguirá ejecutando la siguiente linea de código que en este caso es un salto a la etiqueta "BUCLEFOR" y la operación xor es para evaluar la condición ....si haces xor entre dos num. binarios cualquiera diferentes el resultado sera diferente de cero por lo que el bit Z del registro status sera 0, pero si tu haces el una operacion xor con dos números iguales el resultado sera cero y esto cambiara el valor del bit Z del registro status. es como si fuera una condicion "si"...te recomiendo este enlace para que veas el funcionamiento o en la hoja de datos de los micros creo que también venia la explicación de cada comando risc. comandos ensamblador.

espero te resuelva la duda, saludos.
Ok, Gracias ya entendi ... el enlace que me recomendastes ya lo habia visto .. y con la explecacion que me distes entendi lo que el code hace.

Lo que no entendia era  como el usaba estas 2 xorlw y btfss instrucciones para controlar el for(pero si sabia ya lo que cada instruccion hace study ), luego cuando me digistes lo del registro 0 de status siempre seria 0 lo entendi escribo como lo interprete por si no es haci porfa corrijanme(metoco hacer la operacion en binario jejeje):

Cuando el hace "incf" incrementa a K en 1 mas tarde guarda a K en W(movf), entonces compara el numero 10 en binario
00001010 con el valor de K que es igual a W al cerdiferente su resultado siempre dejara el registro Z en 0, pero cuando este llega a evaluar el literal 10 con el valor de K como 10 ya son iguales por locual todos los bit quedan en 0 y pone a  1 el registro Z terminando haci el for(btfss). cheers 

Gracias de nuevo, saludos.

Una ultima pregunta los temas del foro los cierra algun "Admin" o hay que avisar para que lo cierren??.

Iader Camilo
Nuevo Usuario
Nuevo Usuario

Mensajes : 7
Fecha de inscripción : 02/09/2013
Edad : 33
Localización : Colombia

Volver arriba Ir abajo

[Resuelto]Ayuda XORLW Empty Re: [Resuelto]Ayuda XORLW

Mensaje por WaRaW Sáb 7 Sep 2013 - 23:35

mmmm....que bueno que el tema te quedo claro....ejejje...con respecto a si el tema lo cierra un admin. la verdad no estoy seguro, no sabría  jejejeje..... habría que revisar las reglas del foro a ver si hay un apartado para esa parte...

Saludos.

WaRaW
Participante
Participante

Mensajes : 27
Fecha de inscripción : 18/04/2010

Volver arriba Ir abajo

[Resuelto]Ayuda XORLW Empty Re: [Resuelto]Ayuda XORLW

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.