Conjunto de intrucciones

El Conjunto de Instrucciones del Procesador

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

Aritméticas

• ADC: Suma con acarreos
• ADD: Suma números binarios
• DEC: Decrementa en 1
• DIV: División sin signo
• IDIV: Divide con signo (enteros)
• IMUL: Multiplica con signo (enteros)
• INC: Incrementa en 1
• MUL: Multiplica sin signo
• NEG: Negación
• SBB: Resta con el bit prestado
• SUB: Resta valores binarios

Conversión ASCII-BCD

• AAA: Ajuste ASCII después de sumar
• AAD: Ajuste ASCII antes de dividir
• AAM: Ajuste ASCII después de multiplicar
• AAS: Ajuste ASCII después de restar
• DAA: Ajuste decimal después de sumar
• DAS: Ajuste decimal después de restar

Corrimiento de bit

• RCL: Rota a la izquierda a través del acarreo
• RCR: Rota a la derecha a través 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 lógico a la izquierda
• SHR: Corrimiento lógico a la derecha
• SHLD/SHRD: Corrimiento en doble precisión (80386 y posteriores)

Comparación

• BSF/BSR: Exploración de bit (80386 y posteriores)
• BT/BTC/BTR/BTS: Prueba bit (80386 y posteriores)
• CMP: Compara
• CMPS: Compara cadenas de caracteres
• TEST: Prueba bits

Transferencia de datos

• LDS: Carga el registro del segmento de datos
• LEA: Carga una dirección efectiva
• LES: Carga el registro de segmento extra
• LODS: Carga una cadena
• LSS: Carga el registro del segmento de 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

Operaciones con banderas

• CLC: Limpia la bandera de acarreo
• CLD: Limpia la bandera de dirección
• CLI: Limpia la bandera de interrupción
• 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 dirección
• STI: Establece la bandera de interrupción

Entrada/Salida

• IN: Introduce un byte o una palabra
• OUT: Saca un byte o una palabra

Operaciones lógicas

• AND: Conjunción lógica (y)
• NOT: Negación lógica (no)
• OR: Disyunción lógica (o)
• XOR: Disyunción 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 detención
• LOCK: Bloquea el bus
• NOP: No operar
• WAIT: Pone al 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
• MOVS: Mueve 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
• JS/JNS: Salta si el signo es negativo o salta si el signo es positivo

Transferencia (incondicional)

• CALL: Llama a un procedimiento
• INT: Interrupción
• IRET: Interrupción de regreso
• JMP: Salto incondicional
• RET: Regreso
• RETN/RETF: Regreso cercano o regreso lejano

Conversión de tipo

• CBW: Convierte byte a palabra
• CDQ: Convierte palabra doble a palabra cuádruple (80386 y posteriores)
• CWD: Convierte palabra a palabra doble
• CWDE: Convierte una palabra a una palabra doble extendida

No hay comentarios.:

Publicar un comentario

Ejemplo sencillo

Ejemplo de separar numero pares de impares                         .model small .stack 100h      ;tamaño de l...