7ma Clace
Posteado por Raúl Alejandro QL
Las instrucciones de salto, son estremadamente utiles a la hora de programar. son una valiosa herramienta para poder desarrollar programas bien estructurados
El salto incondicional es uno de los mas simples, significa que no requiere una condicion para realizar el salto.
AJMP (Salto a la direccion), LJMP (Salto Largo) SJMP (Salto corto), estos saltos pueden utilizarse en cualquier lugar del codigo y sin cumplir ninguan condicion
org 0000h inicio: mov p1,#00h ; puerto 1 a cero aqui: cpl p1 ; not(p1) jmp aqui ; salta a la etiqueta "aqui" end
Las instrucciones condicionales, como su nombre lo indica son instrucciones que requieren cumplir una condicion, dependen de ellas y son muy utiles para evitar que los lazos sean infinitos, para generar contadores de blucles, etc.
JZ y JNZ, JZ (saltar si el acumulador es cero) y JNZ (saltar si el acumulador no es cero).
org 0000h arriba: mov a,#00h inicio: jz abajo ; si a = 00h ir a "abajo" jnz arriba ; si a =/= 00h ir a "arriba" nop ; se ejecuta alguna vez ¿? abajo: mov a,#33h ajmp inicio ; saltar a "inicio" end
DJNZ (Decrementar y saltar si no es cero) Esta instruccion esta especializad en lazos de control. Para que ejecutre un lazo a veces se carga un contador con "n" y, cada vez que se ejecute el contenido del lazo , el contador decrementa una unidad, saliendo del lazo cuando el contenido del contador sea cero.
org 0000h mov a,#7d ; a = 7 bucle: nop ; instrucciones djnz a,bucle ; a = a - 1 --> si a =/= 0 ir a "Bucle" end
CJNE (Comparar y saltar si no es igual), en este caso se puede realizar la comparacion con un acumulador o con
un operador tipo byte que puede ser @r0,@r1, r0,r1,..,r7, M[x]
org 0000h mov a,#6d ; a = 6 bucle: inc a ; a = a + 1 cjne a,#9d, bucle ; a =/= 9 ir a "bucle" end
Visitas