You are on page 1of 7

1

1.4.4 Instrucciones del programa

La siguiente es una lista de las instrucciones para la familia de procesadores 8086, clasificadas por categora. Aunque la lista parece enorme, muchas de las instrucciones rara vez se necesitan.

Aritmticas ADC: Suma con acarreos. ADD: Suma nmeros binarios. DEC: Decrementa en 1. DIV: Divisin sin signo. IDIV: Divide con signo (enteros). IMUL: Multiplica con signo (enteros). INC: Incrementa en 1. MUL: Multiplica sin signo. NEG: Negacin. SBB: Resta con el bit prestado. SUB: Resta valores binarios.

Conversin ASCII-BCD AAA: Ajuste ASCII despus de sumar. AAD: Ajuste ASCII antes de dividir. AAM: Ajuste ASCII despus de multiplicar. AAS: Ajuste ASCII despus de restar. DAA: Ajuste decimal despus de sumar. DAS: Ajuste decimal despus de restar.

2 Corrimiento de bit RCL: Rota a la izquierda a travs del acarreo. RCR: Rota a la derecha a travs del acarreo. ROL: Rota a la izquierda. ROR: Rota a la derecha. SAL: Corrimiento algebraico a la izquierda: SAR: Corrimiento algebraico a la derecha. SHL: Corrimiento lgico a la izquierda. SHR: Corrimiento lgico a la derecha. SHLD/SHRD: Corrimiento en doble precisin (80386 y posteriores).

Comparacin BSF/BSR: Exploracin de bit (80386 y posteriores). BT/BTC/BTR/BTS: Prueba de bit (80386 y posteriores). CMP: Compara. CMPS: Compara cadena de caracteres. TEST: Prueba de bits.

Transferencia de datos LDS: Carga el registro del segmento de datos. LEA: Carga una direccin efectiva. LES: Carga el registro de segmento extra. LODS: Carga una cadena. LSS: Carga el registro del segmento en la pila. MOV: Mueve datos. MOVS: Mueve cadenas. MOVSX: Mueve con signo-extendido. MOVZX: Mueve con cero-extendido. STOS: Almacena una cadena. XCHG: Intercambia. XLAT: Traduce.

3 Operaciones con banderas CLC: Limpia la bandera de acarreo. CLD: Limpia la bandera de direccin. CLI: Limpia la bandera de interrupcin. CMC: Complementa la bandera de acarreo. LAHF: Carga AH de las banderas. POPF: Remueve banderas de la pila. PUSHF: Agrega banderas a la pila. SAHF: Almacena el contenido de AH en las banderas. STC: Establece la bandera de acarreo. STD: Establece la bandera de direccin. STI: Establece la bandera de interrupcin.

Entrada/Salida IN: Introduce un byte o una palabra. OUT: Saca un byte o una palabra. Operaciones lgicas AND: Conjuncin lgica (y). NOT: Negacin lgica. OR: Disyuncin lgica. XOR: Disyuncin exclusiva. Ciclos LOOP: Repetir el ciclo hasta que se complete. LOOPE/LOOPZ: Repetir el ciclo mientras sea igual/mientras sea cero. LOOPNE/LOOPNZ: Repetir el ciclo mientras no sea igual/mientras no sea cero. Control del procesador ESC: Escape. HLT: Introduce un estado de detencin. LOCK: Bloquea el bus. NOP: No operar. WAIT: Pone el procesador en estado de espera.

Operaciones con la pila POP: Remueve una palabra de la pila. POPA: Remueve todos los registros generales (80286 y posteriores). PUSH: Agrega a la pila. PUSHA: Agrega todos los registros generales (80286 y posteriores). Operaciones con cadenas CMPS: Compara cadenas. LODS: Carga cadena. REP: Repite una cadena. REPE/REPZ: Repite mientras sea igual/mientras sea cero. REPNE/REPNZ: Repite mientras no sea igual/mientras no sea cero. SCAS: Explora una cadena. STOS: Almacena una cadena. Transferencia (condicional) INTO: Interrumpe si hay desbordamiento. JA/JNBE: Bifurca (salta) si es mayor o salta si no es menor o igual. JAE/JNB: Salta si es mayor o igual o salta si no es menor. JB/JNAE: Salta si es menor o salta si no es mayor o igual. JBE/JNA: Salta si es menor o igual o salta si no es mayor. JC/JNC: Salta si hay acarreo o salta si no hay acarreo. JCXZ: Salta si CX es cero. JE/JZ: Salta si es igual o salta si es cero. JG/JNLE: Salta si es mayor o salta si no es menor o igual. JGE/JNL: Salta si es mayor o igual o salta si no es menor. JL/JNGE: Salta si es menor o salta si no es mayor o igual. JLE/JNG: Salta si es menor o igual o salta si no es mayor. JNE/JNZ: Salta si no es igual o salta si no es cero. JNP/JPO: Salta si no hay paridad o salta si la paridad es impar. JO/JNO: Salta si hay desbordamiento o salta si no hay desbordamiento. JP/JPE: Salta si hay paridad o salta si la paridad es par. JSJNS: Salta si el signo es negativo o salta si el signo es positivo.

5 Transferencia (incondicional) CALL: Llama a un procedimiento. INT: Interrupcin. IRET: Interrupcin de regreso. JMP: Salto incondicional. RET: Regreso. RETN/RETF: Regreso cercano o regreso lejano. Conversin de tipo CBW: Convierte byte a palabra. CDQ: Convierte palabra doble a palabra cudruple. CWD: Convierte palabra a palabra doble. CWSE: Convierte una palabra a una palabra doble extendida.

Operandos

Un operando es una fuente de datos para una instruccin. Algunas instrucciones, como CLC y RET, no necesitan un operando, mientras que otras pueden tener uno o dos operandos. Donde existan dos operandos, el segundo es el fuente, que contiene ya sea datos que sern entregados (inmediatos) o bien la direccin (de registro o en memoria) de los datos. El dato fuente no es cambiado por la operacin. El primer operando es el destino, que contiene datos en un registro o en memoria y que ser procesado.

operacin

operando1, operando2

Examinemos ahora cmo los operandos pueden afectar el direccionamiento de datos.

6 Operandos registro

Para este tipo, el registro proporciona el nombre de alguno de los registros de 8, 16 o 32 bits. Dependiendo de la instruccin, el registro puede codificarse en el primero o segundo operandos, o en ambos:

El procesamiento de datos entre registros es el tipo de operacin ms rpida, ya que no existe referencia a memoria.

Operandos inmediatos

En formato inmediato, el segundo operando contiene un valor constante o una expresin constante. El campo destino en el primer operando define la longitud de los datos y puede ser un registro o una localidad de memoria. Por ejemplo:

Operandos de memoria directa

EN este formato uno de los Operandos hace referencia a una localidad de memoria y el otro a un registro. Note que no existen instrucciones que permite a ambos operandos sean direcciones de memoria. Para el direccionamiento de datos en memoria, el registro DS es el registro por omisin.

Operandos de memoria indirecta

Direccionamiento indirecto es una tcnica sofisticada que hace uso de las capacidades de la computadora para el direccionamiento de segmento; desplazamiento. Los registros utilizados para ste propsito son: BX, DI, SI y BP.

Esto es lo mismo que:

You might also like