Está en la página 1de 6

Grupo de Arquitectura de Computadores y Diseño Lógico. UEX, 1997. http://atc.unex.

es/gacdl
Resumen de las instrucciones del 8086/8088 Germán Galeano Gil. Juan A. Gómez Puildo

Resumen de las instrucciones del 8086/8088

En este capítulo se hace un resumen de las instrucciones del 8086/8088. Estas


instrucciones se encuentran explicadas más detalladamente en otro capítulo. Se puede
consultar más en [PA01], [Rod00], [PCG00], [Ray00] y [Ter00].

Operaciones aritméticas y lógicas


Estas instrucciones son realizadas por la ALU de la máquina. Las podemos considerar
agrupadas en varios tipos:

Operaciones puramente aritméticas


A este apartado pertenecen aquellas instrucciones que realizan operaciones aritméticas
con los operandos, como suma, resta, etc. Alteran las banderas de estado.

Instrucción Función
ADC Sumar dos operandos y añadir el acarreo.
ADD Sumar dos operandos sin añadir el acarreo.
DEC Decrementa operando en 1.
DIV División sin signo.
IDIV División considerando los signos de los operandos.
IMUL Multiplicación considerando los signos de los operandos.
INC Incremeta el operando en 1.
MUL Multiplicación sin considerar los signos.
NEG Cambiar el signo del operando.
SBB Resta añadiendo el acarreo.
SUB Resta sin acarreo.

Operaciones puramente lógicas


A este apartado pertenecen aquellas instrucciones que realizan operaciones a nivel de bit
(operaciones de tipo lógica o de aritmética binaria) con los operandos. Al igual que las
anteriores, alteran las banderas de estado.

Instrucción Función
AND Realiza un <Y> lógico.
NOT Realiza un <NO> lógico.
OR Realiza una <O> lógica.
XOR Realiza una <O> exclusiva .

1
Grupo de Arquitectura de Computadores y Diseño Lógico. UEX, 1997. http://atc.unex.es/gacdl
Resumen de las instrucciones del 8086/8088 Germán Galeano Gil. Juan A. Gómez Puildo

Operaciones de manejo de bits


Pertenecen a este apartado aquellas instrucciones que realizan traslaciones (rotaciones)
con los bits del operando. Al igual que las anteriores, alteran las banderas de estado.

Instrucción Función
RCL Rota a la izquierda a través del acarreo.
RCR Rota a la derecha considerando el acarreo.
ROL Rotación a la izquierda.
ROR Rotación a la derecha.
SAL/SHL Desplazamiento a la izquierda.
SAR/SHR Desplazamiento hacia la derecha.

Operaciones de conversión
Realizan conversiones de los operandos para transformarlos en otro tipo de
representación numérica.

Instrucción Función
AAA Ajusta el valor ASCII de una suma.
AAD Ajuste del valor ASCII de una divisón.
AAM Ajuste del valor ASCII de una multiplicación.
AAS Ajuste del valor ASCII de una resta.
CBW Convierte un byte en un word.
CWD Convierte un word en un double word.
DAA Ajuste decimal en una suma.
DAS Ajuste decimal en una resta.

Instrucciones de comparación
Las instrucciones de comparación permiten alterar las banderas de estado de la máquina
y, con ello, tomar decisiones cambiando el flujo de un programa. Estas operaciones realizan
internamente alguna operación (por lo general la resta), pero no almacenan el resultado de esa
operación, sino que únicamente actualizan las banderas de estado.

El 8086/8088 dispone de las siguientes instrucciones de comparación:

Instrucción Función
CMP Comparar dos operandos y actualizar banderas.
CMPS Comparar cadenas de un byte o de una palabra.
TEST Comparar dos operandos utilizando operación AND.

2
Grupo de Arquitectura de Computadores y Diseño Lógico. UEX, 1997. http://atc.unex.es/gacdl
Resumen de las instrucciones del 8086/8088 Germán Galeano Gil. Juan A. Gómez Puildo

Instrucciones de salto
El 8086/8088 dispone de 36 instrucciones de salto que permiten controlar el flujo de
ejecución de un programa. Se pueden clasificar en dos tipos: instrucciones de salto
condicional e instrucciones de salto incondicional.

Salto condicional
Realizan el salto si se cumple una determinada condición. Esta condición se comprueba
analizando las banderas de estado. Se utilizan combinadas con alguna instrucción que afecta
el estado de las banderas, como las vistas en los apartados anteriores.

Instrucción Función
JA Saltar si superior.
JAE Saltar si superior o igual.
JB Saltar si inferior .
JBE Saltar si iferior o igual.
JC Saltar si hay acarreo .
JCXZ Saltar si cx es cero.
JE Saltar si igual.
JG Saltar si mayor, considerando signos.
JGE Saltar si mayor o igual, considerando signos.
JL Saltar si menor, considerando signos.
JLE Saltar si menor o igual, considerando signos.
JNA Saltar si no superior.
JNAE Saltar si no superior o igual.
JNB Saltar si no inferior.
JNBE Saltar si no inferior o igual.
JNC Saltar si no hay acarreo.
JNE Saltar si no igual.
JNG Saltar si no mayor (con signo).
JNGE Saltar si no mayor o igual (con signo).
JNL Saltar si no menor (con signo).
JNLE Saltar si no menor o igual (con signo).
JNO Saltar si no hay overflow (considerando signos).
JNS Saltar si positivo.
JNZ Saltar si no es cero.
JO Saltar si hay overflow (con signo).
JP/JPE Saltar si par.
JNP/JPO Saltar si impar.
JS Saltar si negativo (signo activado).
JZ Saltar si es cero.
LOOP Saltar hasta que CX sea 0.
LOOPE/LOOPZ Saltar hasta que el resultado de la última operación sea igual a cero.
LOOPNZ Saltar hasta que el resultado de última operación sea distinta de cero.
LOOPNE Saltar hasta que última comparación sea “distinto”.

3
Grupo de Arquitectura de Computadores y Diseño Lógico. UEX, 1997. http://atc.unex.es/gacdl
Resumen de las instrucciones del 8086/8088 Germán Galeano Gil. Juan A. Gómez Puildo

Salto Incondicional
Este tipo de instrucciones de salto se diferencian del anterior en que el salto se realiza
siempre, es decir, sin comprobar ninguna condición.

Instrucción Función
CALL Llamada a función, con retorno.
JMP Salto incondicional (saltar siempre).
RET Retorno incondicional de un procedimiento.

Instrucciones de manejo de interrupciones


Estas instrucciones permiten activar interrupciones o acceder a servicios del sistema o
de la ROM-BIOS.

Instrucción Función
INT Genera una interrupción.
INTO Genera una interrupción si desbordamiento.
IRET Retorno de interrupción.

Instrucciones de transferencia de información


Estas instrucciones se pueden clasificar en varios grupos:

Transferencia usando registros y/o memoria


Realizan movimientos de datos desde un registro a memoria (o viceversa) y desde un
registro hacia otro registro, con la salvedad de que no se pueden hacer transferencias de
memoria a memoria. Son las siguientes:

Instrucción Función
LAHF Cargar las banderas en AH.
LDS Carga un puntero en DS.
LEA Carga dirección efectiva.
LES Carga un puntero en ES.
MOV Mover un dato.
POP Extraer dato de la pila.
POPF Extraer dato de la pila y almacenarlo en registro de banderas.
PUSH Almacenar dato en la pila.
PUSHF Almacenar registro de banderas en la pila.
SAHF Almacena el contenido de AH en el registro de banderas.
XCHG Intercambiar valores de los operandos.
XLAT Traducir posición.

4
Grupo de Arquitectura de Computadores y Diseño Lógico. UEX, 1997. http://atc.unex.es/gacdl
Resumen de las instrucciones del 8086/8088 Germán Galeano Gil. Juan A. Gómez Puildo

Transferencia usando puertos de E/S


Permiten la comunicación del procesador con otros elementos del bus (como
controladoras y coprocesadores), y con los periféricos conectados al sistema (como
impresoras, ratón, etc.). Unicamente son cuatro, aunque las dos últimas son especializaciones
de las dos primeras:

Instrucción Función
IN Entrada de byte o palabra desde un puerto de E/S.
OUT Salida de byte o palabra a un puerto de E/S.
ESC Enviar información al coprocesador.
WAIT Espera a un coprocesador.

Transferencias “especiales”
A este apartado pertenecen aquellas instrucciones que realizan transferencias de datos de
forma repetitiva y/o utilizando registros de direccionamiento, como el DI y el SI. Son las
siguientes:

Instrucción Función
LODS Carga una cadena.
MOVS Mueve cadena de datos.
REP Repetir operación de manejo de cadenas.
REPE Repetir operación de manejo de cadenas miestras igual.
REPNE Repetir operación de manejo de cadenas miestras no igual.
REPNZ Repetir operación de manejo de cadenas miestras no cero.
REPZ Repetir operación de manejo de cadenas miestras cero.
SCAS Explora cadena de datos.
STOS Almacena cadena de datos.

Instrucciones de control del microprocesador


En este apartado se encuentran aquellas instrucciones que alteran el contenido del
registro de banderas, o que afectan al funcionamiento básico del procesador.

Se pueden clasificar, por tanto, en dos grupos:

Operaciones con las banderas


Alteran el contenido de las banderas.

5
Grupo de Arquitectura de Computadores y Diseño Lógico. UEX, 1997. http://atc.unex.es/gacdl
Resumen de las instrucciones del 8086/8088 Germán Galeano Gil. Juan A. Gómez Puildo

Instrucción Función
CLC Pone a 0 la bandera de acarreo.
CLD Pone a 0 la bandera de dirección.
CLI Pone a 0 la bandera de interrupción.
CMC Complementa la bandera de acarreo.
STC Pone la bandera de acarreo a 1.
STD Pone la bandera de dirección a 1.
STI Pone la bandera de interrupción a 1.

Operaciones con el procesador y el bus


Son instrucciones utilizadas para comunicar la CPU con el bus y con otros procesadores.

Instrucción Función
HLT Detienen el procesador.
LOCK Bloquea el bus de datos.
NOP Operación sin contenido (sólo consume tiempo).

También podría gustarte