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.

(ver Figura 1g.) La ventaja es que el espacio complete <strong>de</strong> 64KB <strong>de</strong> código se pue<strong>de</strong> usar, pero la <strong>de</strong>sventaja<br />

es que las <strong>instrucciones</strong> son <strong>de</strong> tres bytes <strong>de</strong> largo y <strong>de</strong>pen<strong>de</strong>n <strong>de</strong> la posición.<br />

La <strong>de</strong>pen<strong>de</strong>ncia <strong>de</strong> la posición es una <strong>de</strong>sventaja porque el programa no se pue<strong>de</strong> ejecutar en una dirección<br />

diferente. Si, por ejemplo, un programa empieza en 4000H y una instrucción tal como LJMP 4040H aparece,<br />

entonces el programa no se pue<strong>de</strong> mover a, por <strong>de</strong>cir, 6000H. La instrucción LJMP aún salta a la 4040H, la<br />

cual no es la localidad correcta tras que el programa ha sido movido.<br />

Fig. 3 Codificación <strong>de</strong> Instrucciones para direccionamiento absoluto. (a) Mapa <strong>de</strong> memoria con páginas <strong>de</strong> 2KB (b)<br />

Dentro <strong>de</strong> cualquier página <strong>de</strong> 2KB, los 5 bits superiores <strong>de</strong> la dirección son los mismos.<br />

2.8 Direccionamiento ln<strong>de</strong>xado<br />

El direccionamiento in<strong>de</strong>xado usa un registro base (ya sea el contador <strong>de</strong> programa o el apuntador <strong>de</strong> datos)<br />

y un sesgo (el acumulador) para formar la dirección efectiva para una instrucción JMP o MOVC. (ver Figura<br />

1h). Tablas para saltos o tablas <strong>de</strong> búsqueda son creadas fácilmente usando direccionamiento in<strong>de</strong>xado.<br />

Ejemplos se dan al final par alas <strong>instrucciones</strong> MOVC A, @A+< reg _base > y JMP @A+DPTR.<br />

3. Tipos <strong>de</strong> Instrucciones<br />

Las <strong>instrucciones</strong> <strong>de</strong>l 8051 se divi<strong>de</strong>n entre cinco grupos funcionales:<br />

Aritméticas<br />

Lógicas<br />

Transferencia <strong>de</strong> Datos<br />

Variables Booleanas<br />

Ramificado <strong>de</strong> Programa<br />

El Apéndice al final provee una carta <strong>de</strong> referencia rápida mostrando todas las <strong>instrucciones</strong> <strong>de</strong>l 8051 en<br />

grupos funcionales. Una vez se familiarice uno con el juego <strong>de</strong> <strong>instrucciones</strong>, tal carta provee una fuente<br />

rápida y cómoda <strong>de</strong> referencia. Se continúa examinando las <strong>instrucciones</strong> en cada grupo funcional.<br />

3.1 Instrucciones Aritméticas<br />

Las <strong>instrucciones</strong> aritméticas se agrupan juntas en el Apéndice A. Ya que cuatro modos <strong>de</strong> direccionamiento<br />

son posibles, la instrucción ADD A se pue<strong>de</strong> escribir <strong>de</strong> diferentes maneras:<br />

ADD A,7FH (direccionamiento directo)<br />

Profr. Salvador Saucedo 6

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

Saved successfully!

Ooh no, something went wrong!