08.05.2013 Views

Juego de instrucciones del 80C31

Juego de instrucciones del 80C31

Juego de instrucciones del 80C31

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>de</strong> función y un operando para dirección se combinan para formar una instrucción corta, <strong>de</strong> un byte. (ver<br />

Figura la).<br />

El lenguaje ensamblador <strong>de</strong>l 8051 indica al direccionamiento <strong>de</strong> registro con el símbolo Rr don<strong>de</strong> r está <strong>de</strong> 0<br />

a 7. Por ejemplo, para añadir el contenido <strong>de</strong>l Registro 7 al acumulador, la siguiente instrucción se usa<br />

ADD A, R7<br />

y el código <strong>de</strong> operación es 00101111B. Los cinco bits superiores, 00101, indican la instrucción, y los tres<br />

bits bajos, 111, el registro. Se pue<strong>de</strong> uno convencer que ese es el código <strong>de</strong> operación correcto buscando esta<br />

instrucción al final <strong>de</strong>l documento.<br />

Hay cuatro "bancos" <strong>de</strong> registros <strong>de</strong> trabajo, pero sólo uno está activo a la vez. Físicamente, los bancos <strong>de</strong><br />

registros ocupan los primeros 32 bytes <strong>de</strong> RAM interna <strong>de</strong> datos (direcciones 00H a 1FH) con bits 4 y 3 <strong>de</strong>l<br />

PSW <strong>de</strong>terminando el banco activo. Un reset <strong>de</strong>l hardware habilita al banco 0, pero un banco diferente es<br />

seleccionado al modificar los bits 4 y 3 <strong>de</strong>l PSW. Por ejemplo, la instrucción<br />

MOV PSW,#00011000B<br />

Activa al banco <strong>de</strong> registros 3 al hacer “1” los bits selectores <strong>de</strong> banco <strong>de</strong> registro (RS1 y RS0) en PSW, bits<br />

en posiciones 4 y 3.<br />

Algunas <strong>instrucciones</strong> son especificas a ciertos registros, tal como el acumulador, el apuntador <strong>de</strong> datos, etc.,<br />

<strong>de</strong> modo que una dirección no es necesaria. El código <strong>de</strong> operación por sí mismo indica el registro. Estas<br />

<strong>instrucciones</strong> "especificas a un registro" se refieren al acumulador como "A", al apuntador <strong>de</strong> datos como<br />

"DPTR", al contador <strong>de</strong> programa como "PC" a la ban<strong>de</strong>ra <strong>de</strong> acarreo como "C" y a la pareja <strong>de</strong> registros<br />

acumulador,B como "AB". Por ejemplo,<br />

INC DPTR<br />

es una instrucción <strong>de</strong> un byte que suma 1 al apuntador <strong>de</strong> datos <strong>de</strong> 16 bits. Consultar al final para <strong>de</strong>terminar<br />

el código <strong>de</strong> operación para esta instrucción.<br />

2.2 Direccionamiento Directo<br />

El direccionamiento Directo pue<strong>de</strong> acce<strong>de</strong>r a cualquier variable interna o registro <strong>de</strong> hardware. Un byte<br />

adicional es agregado al código <strong>de</strong> operación especificando la localidad a ser usada. (Ver Figura 1b).<br />

Dependiendo en el bit <strong>de</strong> mayor or<strong>de</strong>n <strong>de</strong> la dirección directa, uno <strong>de</strong> dos espacios <strong>de</strong> memoria interna es<br />

seleccionado. Cuando el bit 7 = 0, la dirección directa está entre 0 y 127 (00H a 7FH) y las 128 localida<strong>de</strong>s<br />

<strong>de</strong> RAM interna <strong>de</strong> bajo or<strong>de</strong>n son referenciadas. Todos los 110 puertos y registros especiales <strong>de</strong> función,<br />

control, o estado, sin embargo, les asignan direcciones entre 128 y 255 (80H a FFH). Cuando el byte <strong>de</strong><br />

dirección directo está entre estos limites (bit 7 = 1), el correspondiente registro especial <strong>de</strong> función es<br />

accedido. Por ejemplo, Puertos 0 y 1 se asignan direcciones directas 80H y 90H, respectivamente. no es<br />

necesario conocer las direcciones <strong>de</strong> tales registros; el ensamblador permite y entien<strong>de</strong> las abreviaturas <strong>de</strong> los<br />

nemotécnicos ("P0 para el Puerto 0, "TMOD" para el registro <strong>de</strong> modo <strong>de</strong>l timer, etc.). Como ejemplo <strong>de</strong><br />

direccionamiento directo, la instrucción MOV P1,A transfiere el contenido <strong>de</strong>l acumulador al Puerto 1. La<br />

dirección directa <strong>de</strong>l Puerto 1 (90H) se <strong>de</strong>termina por el ensamblador e insertada como el byte 2 <strong>de</strong> la<br />

instrucción. La fuente <strong>de</strong>l dato, el acumulador, se especifica implícitamente en el código <strong>de</strong> operación.<br />

Usando la carta al final como referencia, el código completo <strong>de</strong> esta instrucción es<br />

10001001 – 1er byte (código <strong>de</strong> operación)<br />

100l0000 - 2do byte (dirección <strong>de</strong> P1)<br />

Profr. Salvador Saucedo 2

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

Saved successfully!

Ooh no, something went wrong!