Comparar con cero
El examen pregunta en la Parte I:
¿Por que se usa
MOVF REGISTRO,Fpara comparar con cero?
Esta pagina te da la respuesta completa que el profesor espera.
Respuesta corta (memorizar)
Sección titulada «Respuesta corta (memorizar)»MOVF REGISTRO,Fmueve el registro sobre si mismo (destinoF= el mismo registro).- Esa operacion actualiza la bandera Z del
STATUS. - Si
REGISTRO = 0→ Z = 1. Si no → Z = 0. - La bandera relevante es Z, no C.
Por que no basta con mirar C
Sección titulada «Por que no basta con mirar C»MOVF no es una resta. No genera prestamo ni acarreo de la misma forma que SUBWF. Para igual a cero, el curso ensena MOVF + Z, no probar C.
Si en el examen marcas que usas C para comparar con cero tras MOVF, la respuesta es incorrecta.
Codigo: igual a cero
Sección titulada «Codigo: igual a cero»Variante con BTFSS (salta si Z=1 → era cero)
Sección titulada «Variante con BTFSS (salta si Z=1 → era cero)»MOVF REGISTRO,FBTFSS STATUS,Z ; ¿Z=1?GOTO NO_ES_CERO ; no salta si Z=1 → no era ceroGOTO ES_CERO ; Z=1 → era cero| REGISTRO | Z despues de MOVF | ¿Salta BTFSS? | Flujo |
|---|---|---|---|
| 0 | 1 | Si | Va a ES_CERO |
| ≠ 0 | 0 | No | Va a NO_ES_CERO |
Variante con BTFSC (logica invertida)
Sección titulada «Variante con BTFSC (logica invertida)»MOVF REGISTRO,FBTFSC STATUS,Z ; salta si Z=0 (no es cero)GOTO ES_CEROGOTO NO_ES_CEROAmbas son correctas; elige la que haga mas legible tu flujo hacia ES_CERO o NO_ES_CERO.
Codigo: distinto de cero
Sección titulada «Codigo: distinto de cero»MOVF REGISTRO,FBTFSC STATUS,Z ; salta si Z=0 → no es ceroGOTO ES_DISTINTO_CEROGOTO ES_CERO¿Se puede usar SUBWF para comparar con cero?
Sección titulada «¿Se puede usar SUBWF para comparar con cero?»Si:
MOVLW .0SUBWF A,W ; A - 0BTFSS STATUS,ZFunciona, pero el metodo oficial del curso para cero es MOVF A,F. En la pregunta teorica del parcial responde con MOVF y Z.
Comparar con un literal distinto de cero
Sección titulada «Comparar con un literal distinto de cero»Para ¿A = 5?:
MOVLW .5SUBWF A,WBTFSS STATUS,ZGOTO A_NO_ES_5GOTO A_ES_5Aqui si usas resta porque comparas con un valor distinto de cero.
Ejercicio · Parcial
Pregunta teorica (escrita)
Redacta en 3-4 lineas: ¿Por que MOVF REGISTRO,F compara con cero usando Z y no C?
Siguiente: Entre registros — igual, menor, mayor y tabla del parcial.
Comparar con cero
Basado en: Clase Tema 4 y 5.pdf
0 de 0 respondidas
Inicia sesion en CALETAS para sincronizar este resultado entre dispositivos.
Iniciar sesion en CALETAS