Consulta instrucción bit con JP o JR para hacer if.

Consulta instrucción bit con JP o JR para hacer if.

de Carlos Alexander Gadea Rodriguez -
Número de respuestas: 2

Buenas,

Mi duda, es la siguiente.

Cuando se quiere hacer un if en alguna parte de un programa, utilizándose las instrucción JP cc, nn o lo mismo con JR cc, e; esta teste que la condición cc sea verdadera para saltar a la dirección nn en caso de JP y el relativo a e en JR.  Ahora bien, cuando la operación anterior a este salto condicional es, por ejemplo, bit b, r que según la cartilla lo que hace es Z<--rb (cargar en la bandera z lo que había en el bit b del registro r). Si lo anterior es correcto, hacia donde saltaría luego del JP en el siguiente "programa":

........

bit 0, a   ;a fue cargado con 0x00

JP z, salto1

salto0:

....

salto1:

....

Salta a salto0 o me equivoco?

Es una duda que nos surgió al terminar la última práctica, luego de haber hecho mucho código, pensado que lo anterior marcha de manera opuesta a como lo pensé anteriormente. Es decir, luego de JP el programa saltaría a salto1.

Agradezco cualquier aclaración, aporte o respuesta.

Saludos,

Alexander.

En respuesta a Carlos Alexander Gadea Rodriguez

Re: Consulta instrucción bit con JP o JR para hacer if.

de Diego Barreiro Indart -

Buenas,

Fijate en las Erratas: BIT b, r hace Z ← NOT(r_b). Tiene sentido, porque básicamente Z queda en 1 para decirte que sí, el bit era cero. A tu pregunta: como el bit 0 de A vale cero, Z va a quedar en 1, y el JP te lleva a salto1.

Ante la duda siempre podés usar el debugger para inspeccionar el registro F después de hacer un BIT b, r.


Saludos