Está en la página 1de 3

Instrucciones del 8086 Las instrucciones de 16 bits tienen el siguiente formato: Código de operación 1 a 2 bytes Especificador de Desplazamiento Dirección

0 a 2 bytes 0 a 1 byte Dato Inmediato 0 a 2 bytes

Dentro del código de operación, pueden estar incluidos campos de operación menores que definen tamaño de desplazamiento, codificación de registros o extensión de signo (w, d, s, reg, regs2). El especificador de dirección define el modo de direccionamiento y puede incluir también la codificación de registros (mod r/m, reg, regs2, regs3). Las siguientes tablas definen los valores de codificación para los campos del código de operación y del especificador de dirección. VALOR DE w 1 0 N/P AX AL AX CX CL CX DX DL DX BX BL BX SP AH SP BP CH BP SI DH SI DI BH DI reg 000 001 010 011 100 101 110 111 REGISTRO ES CS SS DS REGISTRO ES CS SS DS regs2 00 01 10 11 regs3 000 001 010 011 d 0

mod 00 00 00 00 00 00 00 00 01 01 01 01 01 01 01 01

r/m 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111

Dir. Efec. DS:[BX+SI] DS:[BX+DI] SS:[BP+SI] SS:[BP+DI] DS:[SI] DS:[DI] DS:DIRECTA DS:[BX] DS:[BX+SI+d8] DS:[BX+DI+d8] SS:[BP+SI+d8] SS:[BP+DI+d8] DS:[SI+d8] DS:[DI+d8] DS:[BP+d8] DS:[BX+d8]

mod 10 10 10 10 10 10 10 10 11 11 11 11 11 11 11 11

r/m 000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111

Dir. Efec. DS:[BX+SI+d16] DS:[BX+DI+d16] SS:[BP+SI+d16] SS:[BP+DI+d16] DS:[SI+d16] DS:[DI+d16] DS:[BP+d16] DS:[BX+d16] w=0 w=1 AL AX CL CX DL DX BL BX AH SP CH BP DH SI BH DI

• Instrucciones de Transferencia de Datos
INSTRU -CCION MOV DIRECCIONA-MIENTO Código 1000100w 1000101w 1100011w 1011w reg 1010000w 1010001w 10001110 10001100 10100100 10100101 10001101 11000101 11000100 10011111 10101100 10101101 11111111 01010 reg 011010s0 000 regs2 110 10001111 01011 reg 000 regs2 111 01100000 CODIFICACION Dirección mod reg r/m mod reg r/m mod 000 r/m Desp. 0a2 0a2 0a2 2 2 mod regs3 r/m mod regs3 r/m Inm.

DIRECCION DE LA OPERACIÓN Reg a Reg/Mem El campo “reg” indica el operando fuente; “mod r/m” indica operando destino. Reg/Mem a Reg El campo “reg” indica el operando destino; “mod r/m” indica operando fuente. s

1

Efecto sobre dato inmediato de Efecto sobre dato inmediato de 8 bits 16 bits 0 Ninguno Ninguno 1 Extensión de signo del dato de 8 Ninguno bits hasta completar los 16 bits

Reg a Reg/Mem Reg/Mem a Reg Inm a Reg/Mem Inm a Reg (corta) Mem a Acum (corta) Acum a Mem (corta) Reg a Regs Regs a Reg MOVSB Sin operandos MOVSW Sin operandos LEA Mem a Reg LDS Mem a Reg LES Mem a Reg LAHF Sin operandos LODSB Sin operandos LODSW Sin operandos PUSH Reg/Mem Reg (corta) Inmediato Regs (corta) POP Reg/Mem Reg (corta) Regs (corta) PUSHA Sin operandos

1o2 1o2

mod reg r/m mod reg r/m mod reg r/m

0a2

mod 110 r/m

0a2 1o2

mod 000 r/m

0a2

SAR.ROL. ROL 000 001 010 TTT 1101000w 1101001w 1100000w RCR 011 SHL 100 mod TTT r/m mod TTT r/m mod TTT r/m SAL 100 1 SAR 111 0a2 0a2 0a2 • 0a2 0a2 Instrucciones de Transferencia de Control DIRECCIONAMIENTO CODIFICACION Código 11101000 11101001 11000011 Desp. Reg/Mem por 1 SHL. Reg/Mem por CL ROR. • Instrucciones Lógicas DIRECCIONAMIENTO Reg con Reg Reg con Mem Mem con Reg Inm con Reg/Mem Inm con Acum (corta) Reg con Reg Reg con Mem Mem con Reg Inm con Reg/Mem Inm con Acum (corta) Reg con Reg Reg con Mem Mem con Reg Inm con Reg/Mem Inm con Acum (corta) Reg/Mem y Reg Inm y Reg/Mem Inm y Acum (corta) Reg/Mem Reg/Mem Código 001000dw 0010000w 0010001w 1000000w 0010010w 000010dw 0000100w 0000101w 1000000w 0000110w 001100dw 0011000w 0011001w 1000000w 0011010w 1000010w 1111011w 1010100w 1111011w 1111011w CODIFICACION Dirección mod reg r/m mod reg r/m mod reg r/m mod 100 r/m mod reg r/m mod reg r/m mod reg r/m mod 001 r/m mod reg r/m mod reg r/m mod reg r/m mod 110 r/m mod reg r/m mod 000 r/m mod 010 r/m mod 011 r/m Desp. 0a2 0a2 0a2 Inm. 2 2 INSTRU CCION CALL JMP RET • Instrucciones de Control de Banderas ACCION Borra bandera de acarreo Borra bandera de dirección Borra bandera de habilitación de interrupción Complementa bandera de acarreo Enciende bandera de acarreo CODIFICACION 11111000 11111100 11111010 11110101 11111001 INSTRUCCION CLC CLD CLI CMC STC Directo dentro del segmento Directo dentro del segmento Dentro del segmento . INSTRU -CCION ADD INSTRU -CCION AND 0a2 0a2 OR 0a2 0a2 ADC 0a2 0a2 0a2 0a2 0a2 XOR 0a2 0a2 0a2 0a2 0a2 SUB 0a2 0a2 0a2 0a2 0a2 TEST 0a2 0a2 0a2 0a2 0a2 0a2 0a2 0a2 0a2 0a2 SHR 101 0a2 0a2 0a2 0a2 SBB 0a2 0a2 0a2 0a2 0a2 0a2 0a2 0a2 0a2 0a2 NOT NEG MUL(ss) IMUL DIV (ss) IDIV INC DEC CMP SAL. Reg/Mem por inmediato RCR ROR RCL INST.RCL. 0a2 0a2 0a2 Inm.POPA XCHG Sin operandos Reg/Mem con Reg Reg con Acum (corta) 01100001 1000011w 10010 reg mod reg r/m 0a2 STD STI PUSHF POPF Enciende bandera de dirección Enciende bandera de habilitación de interrupción Guarda banderas en Pila Saca banderas de la Pila 11111101 11111011 10011100 10011101 • Instrucciones Aritméticas DIRECCIONAMIENTO Reg con Reg Reg con Mem Mem con Reg Inm con Reg/Mem Inm con Acum Reg con Reg Reg con Mem Mem con Reg Inm con Reg/Mem Inm con Acum Reg de Reg Reg de Mem Mem de Reg Inm de Reg/Mem Inm de Acum Reg de Reg Reg de Mem Mem de Reg Inm de Reg/Mem Inm de Acum Acum con Reg/Mem Acum con Reg/Mem Acum por Reg/Mem Acum con Reg/Mem Reg/Mem Reg (corta) Reg/Mem Reg (corta) Reg con Reg Reg con Mem Mem con Reg Inm con Reg/Mem Inm con Acum Código 000000dw 0000000w 0000001w 100000sw 0000010w 000100dw 0001000w 0001001w 100000sw 0001010w 001010dw 0010100w 0010101w 100000sw 0010110w 000110dw 0001100w 0001101w 100000sw 0001110w 1111011w 1111011w 1111011w 1111011w 1111111w 01000reg 1111111w 01001 reg 001110dw 0011100w 0011101w 100000sw 0011110w CODIFICACION Dirección mod reg r/m mod reg r/m mod reg r/m mod 000 r/m mod reg r/m mod reg r/m mod reg r/m mod 010r/m mod reg r/m mod reg r/m mod reg r/m mod 101r/m mod reg r/m mod reg r/m mod reg r/m mod 011r/m mod 100 r/m mod 101 r/m mod 110 r/m mod 111 r/m mod 000 r/m mod 001 r/m mod reg r/m mod reg r/m mod reg r/m mod 111 r/m Desp. SHR.

byte AX. 11001101 Tipo INSTRUCCION INT .byte AL. LOOPE LOOPNZ. DX AX.• Instrucciones Saltos Condicionales INSTRUCCION DIRECCIONAMIENTO De CX Mientras cero/igual Mientras no cero/igual CODIFICACION Código Desp. LOOP LOOPZ. LOOPNE INSTRUCCION JO JNO JE/JZ JNE/JNZ JS JNS JL/JNGE JNL/JGE JG/JNLE JNG/JLE JA/JNBE JAE/JNB JB/JNAB JBE/JNA JP/JPE JPO/JNP JC JCXZ DIRECCIONAMIENTO 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8 bits completo 8bits Completo 8 bits Completo 8 bits CODIFICACION Código Desp. inm. DX Sin operandos Sin operandos Sin operandos MOVSB MOVSW LODSB LODSW STOSB STOSW CMPSB CMPSW SCASB SCASW CMPSB CMPSW SCASB SCASW Sin operandos Sin operandos Sin operandos Sin operandos Sin operandos Sin operandos Sin operandos CODIFICACION Código 00110111 11010100 00001010 00111111 10011000 1010011w 1010011w 10011001 00100111 00101111 11110100 11100100 11101100 11100101 11101101 11001110 11001111 10010000 11110010 10100100 11110010 10100101 11110011 10101010 11110011 10101011 11110010 10101010 11110010 10101011 11110011 10100110 11110011 10100111 11110011 10101110 11110011 10101111 11110010 10100110 11110010 10100111 11110010 10101110 11110010 10101111 11001011 10011110 10101110 10101111 10101010 10101011 11010111 Inm. inm. 11100010 1 11100001 1 11100000 1 INSTRUCCION AAA AAM AAS CBW CMPSB CMPSW CWD DAA DAS HLT IN DIRECCIONAMIENTO Sin operandos Sin operandos Sin operandos Sin operandos Sin operandos Sin operandos Sin operandos Sin operandos Sin operandos Sin operandos AL. 01110000 1 00001111 10000000 2 01110000 1 00001111 10000000 2 01110100 1 00001111 10000100 2 01110101 1 00001111 10000101 2 01111000 1 00001111 10001000 2 01111001 1 00001111 10001001 2 01111100 1 00001111 10001100 2 01111101 1 00001111 10001101 2 01111111 1 00001111 10001111 2 01111110 1 00001111 10001110 2 01110111 1 00001111 10000111 2 01110010 1 00001111 10000010 2 01110010 1 00001111 10000010 2 01110110 1 00001111 10000110 2 01111010 1 00001111 10001010 2 01111011 1 00001111 10001011 2 0111 0010 1 00001111 10000010 2 11100011 1 1 1 INTO IRET NOP REP REPE/ REPZ REPNE/ REPNZ RETF SAHF SCASB SCASW STOSB STOSW XLATB • Instrucciones de Interrupción DIRECCIONAMIENTO Tipo especificado CODIFICACION Código Inm.