Ensambladores

Páginas: 7 (1611 palabras) Publicado: 23 de noviembre de 2014
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
SIDH
SI
DI
BH
DI

reg
000
001
010
011
100
101
110
111

REGISTRO
ES
CS
SS
DS
REGISTRO
ES
CS
SS
DS

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

regs2
00
01
10
11
regs3
000
001
010
011
d
01

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

mod
00
00
00
00
00
00
00
00

r/m
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]

mod
10
10
10
10
10
1010
10

r/m
000
001
010
011
100
101
110
111

01
01
01
01
01
01
01
01

000
001
010
011
100
101
110
111

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]

11
11
11
11
11
11
11
11

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

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 RegLDS
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

CODIFICACION
Código
1000100w
1000101w
1100011w
1011w reg
1010000w
1010001w
10001110
10001100
10100100
10100101
10001101
11000101
11000100
10011111
10101100
1010110111111111
01010 reg
011010s0
000 regs2 110
10001111
01011 reg
000 regs2 111
01100000

Dirección
mod reg r/m
mod reg r/m
mod 000 r/m

Desp.
0a2
0a2
0a2

Inm.

1o2
1o2

0a2
0a2
mod regs3 r/m
mod regs3 r/m

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

0a2
0a2
0a2

mod 110 r/m

0a2
1o2

mod 000 r/m

0a2

POPA
XCHG



ADD

ADC

SUB

SBB

MUL(ss)
IMUL
DIV(ss)
IDIV
INC

CMP



01100001
1000011w
10010 reg

mod reg r/m

STD
STI
PUSHF
POPF

0a2



Instrucciones Aritméticas

INSTRU
-CCION

DEC

Sin operandos
Reg/Mem con Reg
Reg con Acum (corta)

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
Regde 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

Código
000000dw
0000000w
0000001w
100000sw
0000010w
000100dw
0001000w
0001001w
100000sw
0001010w
001010dw
0010100w
0010101w
100000sw
0010110w
000110dw
0001100w
0001101w
100000sw
0001110w
1111011w
1111011w

Dirección
mod...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • ensamble
  • Ensamblador
  • Ensambles
  • Ensamblado
  • ENSAMBLE
  • Ensamblado
  • Ensamblador
  • Ensamblador

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS