8088

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 G

24 downloads 232 Views 39KB Size

Story Transcript

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 ADC ADD DEC DIV IDIV IMUL INC MUL NEG SBB SUB

Función Sumar dos operandos y añadir el acarreo. Sumar dos operandos sin añadir el acarreo. Decrementa operando en 1. División sin signo. División considerando los signos de los operandos. Multiplicación considerando los signos de los operandos. Incremeta el operando en 1. Multiplicación sin considerar los signos. Cambiar el signo del operando. Resta añadiendo el acarreo. 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 AND NOT OR XOR

Función Realiza un lógico. Realiza un lógico. Realiza una lógica. Realiza una 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 RCL RCR ROL ROR SAL/SHL SAR/SHR

Función Rota a la izquierda a través del acarreo. Rota a la derecha considerando el acarreo. Rotación a la izquierda. Rotación a la derecha. Desplazamiento a la izquierda. 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 AAA AAD AAM AAS CBW CWD DAA DAS

Función Ajusta el valor ASCII de una suma. Ajuste del valor ASCII de una divisón. Ajuste del valor ASCII de una multiplicación. Ajuste del valor ASCII de una resta. Convierte un byte en un word. Convierte un word en un double word. Ajuste decimal en una suma. 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 CMP CMPS TEST

Función Comparar dos operandos y actualizar banderas. Comparar cadenas de un byte o de una palabra. 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 JA JAE JB JBE JC JCXZ JE JG JGE JL JLE JNA JNAE JNB JNBE JNC JNE JNG JNGE JNL JNLE JNO JNS JNZ JO JP/JPE JNP/JPO JS JZ LOOP LOOPE/LOOPZ LOOPNZ LOOPNE

Función Saltar si superior. Saltar si superior o igual. Saltar si inferior . Saltar si iferior o igual. Saltar si hay acarreo . Saltar si cx es cero. Saltar si igual. Saltar si mayor, considerando signos. Saltar si mayor o igual, considerando signos. Saltar si menor, considerando signos. Saltar si menor o igual, considerando signos. Saltar si no superior. Saltar si no superior o igual. Saltar si no inferior. Saltar si no inferior o igual. Saltar si no hay acarreo. Saltar si no igual. Saltar si no mayor (con signo). Saltar si no mayor o igual (con signo). Saltar si no menor (con signo). Saltar si no menor o igual (con signo). Saltar si no hay overflow (considerando signos). Saltar si positivo. Saltar si no es cero. Saltar si hay overflow (con signo). Saltar si par. Saltar si impar. Saltar si negativo (signo activado). Saltar si es cero. Saltar hasta que CX sea 0. Saltar hasta que el resultado de la última operación sea igual a cero. Saltar hasta que el resultado de última operación sea distinta de cero. 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 CALL JMP RET

Función Llamada a función, con retorno. Salto incondicional (saltar siempre). 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 INT INTO IRET

Función Genera una interrupción. Genera una interrupción si desbordamiento. 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 LAHF LDS LEA LES MOV POP POPF PUSH PUSHF SAHF XCHG XLAT

Función Cargar las banderas en AH. Carga un puntero en DS. Carga dirección efectiva. Carga un puntero en ES. Mover un dato. Extraer dato de la pila. Extraer dato de la pila y almacenarlo en registro de banderas. Almacenar dato en la pila. Almacenar registro de banderas en la pila. Almacena el contenido de AH en el registro de banderas. Intercambiar valores de los operandos. 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 IN OUT ESC WAIT

Función Entrada de byte o palabra desde un puerto de E/S. Salida de byte o palabra a un puerto de E/S. Enviar información al coprocesador. 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 LODS MOVS REP REPE REPNE REPNZ REPZ SCAS STOS

Función Carga una cadena. Mueve cadena de datos. Repetir operación de manejo de cadenas. Repetir operación de manejo de cadenas miestras igual. Repetir operación de manejo de cadenas miestras no igual. Repetir operación de manejo de cadenas miestras no cero. Repetir operación de manejo de cadenas miestras cero. Explora cadena de datos. 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 CLC CLD CLI CMC STC STD STI

Función Pone a 0 la bandera de acarreo. Pone a 0 la bandera de dirección. Pone a 0 la bandera de interrupción. Complementa la bandera de acarreo. Pone la bandera de acarreo a 1. Pone la bandera de dirección a 1. 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 HLT LOCK NOP

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

6

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.