Documente Academic
Documente Profesional
Documente Cultură
· Instrucciones aritmeticas.
· Instrucciones logicas.
a) RAM interna.
b) RAM externa.
· Instrucciones booleanas.
· Instrucciones de salto.
Modos de Direccionamiento
Direccionamiento Directo
ejemplo: ADD A,38H; es decir, suma (ADD) el contenido del acumulador (A) con el contenido de
la posicion de memoria (38):
Direccionamiento Indirecto
La instruccion especifica un registro que contiene la direccion del operando. Tanto la memoria
RAM interna (256 bytes/128 bytes) como la externa se pueden direccionar indirectamente.
Los registros para direccionar sobre el mapa de 8 bits pueden ser el R0 y R1 del banco de registros
seleccionado, o el Stack Pointer. El registro para direccionar sobre 16 bits solo puede ser el Puntero
de Datos (Data Pointer = DPTR).
Ejemplo: ADD A,@R0 ; Asi, si (RO)=38H la operaci6n sera: A << (A) + (38) Igual que en el ejemplo
anterior (@) es el identificador del direccionamiento indirecto.
Ejemplos:
MOV Rn,A ; operación: (Rn) << (A) MOV Rn,#dato; operación (Rn) << (#dato)
Direccionamiento implicito
Algunas instrucciones especifican, implicitamente, el registro sobre el que van a operar, como el
acumulador, el puntero de datos, etc. No necesitan especificar el operando porque esta implicito
en el codigo de operacion.
ejemplos:
INC A ; Incrementa el contenido del acumulador: A << (A) + 1 INC DPTR ; Incrementa puntero de
datos: DPTR << (DPTR) + 1
Direccionamiento inmediato
Al codigo de operacion le sigue una constante en la memoria de programas.
Ejemplo:
MOV A, #255 ; Carga en el acumulador el numero decimal 255.
en hexadecimal: MOV A, #FFH MOV A, #11111111B ó en binario:
Direccionamiento indexado
Ciclo de Instrucción
La ejecucion de un ciclo de instruccion comienza en cl estado 1 del ciclo maquina, cuando cl codigo
de operacion es almacenado en cl Registro de Instruccion. (Para comprender este apartado tener a
la vista la Figura 3.1 y la Tabla 4.5, Set de Instrucciones.
Como norma general, una instruccion requiere de uno q mas ciclos maquina, en funcion de:
a) El codigo de operacion
Por ejemplo, la instruccion INC A (Figura 3.1 A) tiene 1 byte de instruccion y requiere 1 ciclo
maquina, la instruccion INC DPTR, tambien, de 1 byte de instruccion requiere de 2 ciclos maquina
(Figura 3.1 C) y la instruccion MUL AB requiere de 4 ciclos maquina para su total ejecucion y ocupa
1 byte en la memoria.
b) El numero de bytes
Por ejemplo, la instruccion MOV A, #data tiene 2 bytes de instruccion y requiere de 1 ciclo
maquina (Figura 3.1 B). En cambio la instruccion MOV direct, # data al constar de 3 bytes necesita
de 2 ciclos maquina. Esto no ocurre siempre, es decir, a mas bytes mas ciclos maquina, como
puede verse en la Figura 3.1 B correspondiente a la instruccion MOV A, #data y en la Figura 3.1 D
MOVX A,@Ri, la primera instruccion tiene 2 bytes y la segunda solo 1. en cambio la primera
requiere 1 ciclo maquina y la segunda 2.
Ante la imposibilidad de establecer una norma o regla que facilite cl conocimiento del numero de
bytes y ciclo de instruccion se ha editado la Tabla 4.5 con el set completo de instrucciones. Cabe
destacar, tambien, en la Figura 3.1, que en cada ciclo maquina se producen 2 accesos a la
memoria, cl primero, si es comienzo de ciclo de instruccion, siempre leera cl codigo de operacion,
cl segundo, que normalmente se descarta, se utiliza para leer cl segundo byte, operando de la
instruccion, como ocurre en la Figura 3.1 B.
Tipos de Instrucciones
El set de instrucciones del 8052/8051 se puede dividir segun las especialidades:
· Instrucciones aritmeticas.
· Instrucciones logicas.
· Instrucciones booleanas
· Instrucciones de salto.
Instrucciones Aritméticas