En este blog se hace un resumen de las instrucciones de la arquitectura 8086...
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 .
|
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 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.
|