10 de abril de 2008

Saltos relativos (SJMP) vs saltos largos (LJMP)

Cuando aparece una instrucción de salto relativo tipo SJMP, el segundo byte (salto relativo) es la distancia en bytes desde la siguiente instrucción a la etiqueta que se indique. Puede ser un salto hacia adelante (el valor de 'salto relativo' será positivo y se escribirá tal cual en el byte) o puede ser hacia atrás (el valor de 'salto relativo' será negativo y habrá que escribir el valor en complemento a dos).

Por el contrario cuando aparece una instrucción de salto largo tipo LJMP, los dos bytes siguientes son la dirección de salto. Por ejemplo si la instrucción tiene que saltar a la dirección F43Ah, tendrás que escribir la parte alta (F4h) en el segundo byte y la parte baja (3Ah) en el tercer byte, aquí no hay que calcular distancia en bytes ya que se da dirección de salto exacta.

No hay comentarios: