08.05.2013 Views

Juego de instrucciones del 80C31

Juego de instrucciones del 80C31

Juego de instrucciones del 80C31

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Fig. 2. Calculando el sesgo para direccionamiento relativo. (a) Salto corto hacia a<strong>de</strong>lante en memoria. (b) Salto corto<br />

hacia atrás en memoria.<br />

El direccionamiento Relativo ofrece la ventaja <strong>de</strong> proveer código que es in<strong>de</strong>pen<strong>de</strong>n tiente <strong>de</strong> la posición (ya<br />

que direcciones "absolutas" no se usan), pero la <strong>de</strong>sventaja es que los <strong>de</strong>stinos <strong>de</strong> salto están limitados en<br />

rango.<br />

2.6 Direccionamiento Absoluto<br />

El direccionamiento Absoluto es usado sólo con las <strong>instrucciones</strong> ACALL y AJMP. Estas <strong>instrucciones</strong> <strong>de</strong><br />

dos byte permiten brincar <strong>de</strong>ntro <strong>de</strong> la página actual <strong>de</strong> 2KB <strong>de</strong> memoria <strong>de</strong> código al proveer los 11 bits<br />

menos significativos <strong>de</strong> la dirección <strong>de</strong>stino en el código <strong>de</strong> operación (A10-A8) y en el byte 2 <strong>de</strong> la<br />

instrucción (A7-A0). (ver Figura 1f).<br />

Los cinco bits superiores <strong>de</strong> la dirección <strong>de</strong>stino son los actuales cinco bits superiores en el contador <strong>de</strong><br />

programa, así que la instrucción que sigue a la instrucción <strong>de</strong>l brinco y la <strong>de</strong>stino para la instrucción <strong>de</strong>l<br />

brinco <strong>de</strong>ben a<strong>de</strong>ntro <strong>de</strong> la misma página <strong>de</strong> 2KB, ya que A15-A11 no cambian. (ver Figura 3.) Por ejemplo,<br />

si la etiqueta THETE representa una instrucción en la dirección 1686H, y la instrucción<br />

AJMP THETE<br />

está en localida<strong>de</strong>s <strong>de</strong> memoria 1700H y 1701H, el ensamblador codificará a la instrucción como<br />

11000001 – 1er byte (A10-A8 + código <strong>de</strong> operación)<br />

10000110 - 2do byte (A7-A0)<br />

Los bits subrayados son los 11 bits <strong>de</strong> bajo or<strong>de</strong>n <strong>de</strong> la dirección <strong>de</strong>stino, 1686H = 0001011010000110B.<br />

Los 5 bits superiores en el contador <strong>de</strong> programa no cambiarán cuando esa instrucción se ejecute. Notar que<br />

ambas <strong>instrucciones</strong>, la AJMP y la <strong>de</strong>stino están incluidas en la página <strong>de</strong> 2KB acotadas por 1000H y 17FFH<br />

(ver Figura 3). y en consecuencia tienen los cinco bits superiores <strong>de</strong> las direcciones comunes.<br />

El direccionamiento Absoluto ofrece la ventaja <strong>de</strong> <strong>instrucciones</strong> cortas (2 bytes), pero tiene la <strong>de</strong>sventaja <strong>de</strong><br />

limitar el rango para el <strong>de</strong>stino y provee <strong>de</strong> código <strong>de</strong>pendiente <strong>de</strong> la posición.<br />

2.7 Direccionamiento Largo<br />

El Direccionamiento Largo se usa sólo con las <strong>instrucciones</strong> LCALL y LJMP. Tales <strong>instrucciones</strong> <strong>de</strong> 3 bytes<br />

incluyen un <strong>de</strong>stino completo <strong>de</strong> 16 bits <strong>de</strong> la dirección en los bytes 2 y 3 <strong>de</strong> la instrucción.<br />

Profr. Salvador Saucedo 5

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!