Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Notas 8086
Notas 8086
NOTAS DE CURSO
(Versin 2.1)
Arquitectura de Computadores 2
Facultad de Ingeniera
Microprocesador 8086
NDICE
DIRECCIONAMIENTO DE MEMORIA............................................................................................................. 2
MODOS DE DIRECCIONAMIENTO................................................................................................................. 3
REGISTRO...................................................................................................................................................................................
VALOR o INMEDIATO..................................................................................................................................................................
DIRECTO......................................................................................................................................................................................
INDIRECTO..................................................................................................................................................................................
3
3
3
3
INSTRUCCIONES............................................................................................................................................ 5
CDIGO.................................................................................5
ARITMTICAS.............................................................................................................................................................................. 6
ADD....................................................................................6
ADC....................................................................................6
SUB ...................................................................................6
SBB....................................................................................6
MUL....................................................................................7
DIV....................................................................................8
NEG....................................................................................8
CBW....................................................................................9
INC....................................................................................9
DEC....................................................................................9
LGICAS.................................................................................................................................................................................... 10
AND...................................................................................10
OR....................................................................................10
XOR...................................................................................10
NOT...................................................................................11
CMP...................................................................................11
DESPLAZAMIENTO................................................................................................................................................................... 12
SAL/SHL...............................................................................12
SHR...................................................................................13
SAR...................................................................................13
ROL...................................................................................14
ROR...................................................................................15
MOVIMIENTO e I/O.................................................................................................................................................................... 16
MOV...................................................................................16
IN....................................................................................16
OUT...................................................................................17
MANEJO DE FLAGS.................................................................................................................................................................. 18
CLC...................................................................................18
STC...................................................................................18
CLI...................................................................................18
STI...................................................................................18
BIFURCACIN INCONDICIONAL.............................................................................................................................................. 20
CALL..................................................................................20
JMP...................................................................................21
RET...................................................................................21
BIFURCACIN CONDICIONAL................................................................................................................................................. 22
JA / JNBE (no considera signo)........................................................22
JB / JNAE / JC (no considera signo)...................................................23
JNB / JAE / JNC (no considera signo)..................................................23
JBE/JNA (no considera signo)..........................................................24
JE/JZ ................................................................................24
JG/JNLE (considera signo).............................................................25
JNG/JLE (considera signo).............................................................25
JNE/JNZ...............................................................................26
JNO...................................................................................26
JNS...................................................................................27
JO....................................................................................27
JS....................................................................................28
MANEJO DE STACK.................................................................................................................................................................. 29
PUSH..................................................................................29
POP...................................................................................29
PUSHF.................................................................................29
POPF..................................................................................30
INTERRUPCIONES.................................................................................................................................................................... 31
INT...................................................................................31
IRET..................................................................................31
CARTILLA REDUCIDA................................................................................................................................... 32
Arquitectura de Computadores 2
Facultad de Ingeniera
Microprocesador 8086
DIRECCIONAMIENTO DE MEMORIA
Los registros del 8086 son de 16 bits, por lo tanto el nmero de direcciones posibles a
direccionar con 1 solo registro es:
216 = 6553610 = 1000016
con lo cual tenemos un total de 1024Kb = 1Mb de memoria direccionable. Los valores para
las direcciones reales se encuentran en el rango 0 a FFFFFh.
Es importante hacer notar que una misma direccin de memoria puede ser direccionada
con distintos valores de segmento y desplazamiento
Ej:
100:50 = 105:0 =0:1050, trabajando en base 16.
Arquitectura de Computadores 2
Facultad de Ingeniera
Microprocesador 8086
MODOS DE DIRECCIONAMIENTO
Se entiende por modos de direccionamiento a las diferentes formas que pueden tomar los
parmetros de las instrucciones del procesador.
Diferentes autores clasifican en forma distinta los modos de direccionamiento del 8086.
Nosotros distinguiremos fundamentalmente cuatro modos diferentes:
REGISTRO
Un parmetro que direcciona a un registro est utilizando el modo de direccionamiento
REGISTRO.
Ej:
MOV Ax,Bx
VALOR o INMEDIATO
El modo de direccionamiento INMEDIATO es utilizado cuando se hace referencia a un valor
constante. Este se codifica junto con la instruccin. Es decir dicho parmetro representa a su
valor y no a una direccin de memoria o un registro que lo contiene.
Ej:
MOV Ax,500
DIRECTO
Se utiliza el modo directo cuando se referencia a una direccin de memoria y la misma esta
codificada junto con la instruccin.
Ej:
MOV Al,[127]
En este ejemplo el desplazamiento de la direccin de memoria se codifica junto con la
instruccin y el segmento se asume a DS.
Si MEMORIA es un array de bytes que representa a la memoria la instruccin anterior se
puede poner como:
Al := MEMORIA[ DS:127 ]
INDIRECTO
Se utiliza el modo directo cuando se referencia a una direccin de memoria a travs de uno
o varios registros
Ej:
MOV Al,[Bx]
{ Bx | Bp } [ + { Si | Di } ] [ + desplazamiento ]
{ Si | Di }
[ + desplazamiento ]
desplazamiento
Arquitectura de Computadores 2
Facultad de Ingeniera
Microprocesador 8086
IP
SP
BP
BX
SI
DI
Arquitectura de Computadores 2
CS
Si
Prefijo
Prefijo
Prefijo
Prefijo
SS
DS
ES
si
por defecto
prefijo
prefijo
prefijo
prefijo
por defecto
por defecto
por defecto
prefijo
prefijo
prefijo
por defecto
(cadenas)
Facultad de Ingeniera
Microprocesador 8086
INSTRUCCIONES
Para describir a cada una de las instrucciones usaremos el siguiente formato:
CDIGO
op1 ,
op2
Formato:
CDIGO
Tipo Args:
CL
Lgica:
Descripcin:
Banderas:
OF
DF
IF
TF
SF
ZF
AF
PF
CF
Arquitectura de Computadores 2
Facultad de Ingeniera
Microprocesador 8086
ARITMTICAS
ADD
Formato:
ADD
Tipo Args:
op1 ,
op2
( r,m)
(r,m,i)
Lgica:
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
ADC
Formato:
ADC
Tipo Args:
op1 ,
op2
( r,m)
(r,m,i)
Lgica:
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
SUB
Formato:
SUB
Tipo Args:
op1 ,
op2
( r,m)
(r,m,i)
Lgica:
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
SBB
Formato:
SBB
Tipo Args:
op1 ,
op2
( r,m)
(r,m,i)
Lgica:
Descripcin:
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
Facultad de Ingeniera
Microprocesador 8086
MUL
Formato:
MUL
Tipo Args:
Lgica:
op
( r,m)
si op es de tipo byte
Ax = Al *op
Dx, Ax = Ax* op
fin si
si la mitad superior del resultado es 0
sino
fin si
CF = 0
CF = 1
OF = CF
Descripcin:
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
Facultad de Ingeniera
Microprocesador 8086
DIV
Formato:
DIV
Tipo Args:
Lgica:
op
( r,m)
si op es de tipo byte
si Ax div op > FFh
else
INT 0
Al = Ax div op
Ah = Ax mod op
fin si
fin si
sino si op es de tipo palabra
si Dx: Ax div op > FFh
else
INT 0
Ax = Dx: Ax div op
Dx = Ax mod op
fin si
Error! Objects cannot be created from editing field codes.
Descripcin:
Ax
IF
TF
SF
ZF
AF
PF
CF
PF
CF
NEG
Formato:
NEG
Tipo Args:
Lgica:
op
( r,m)
si op es de tipo byte
op = FFh op
op = op + 1
sino si op es de tipo palabra
op = FFFFh op
op = op + 1
fin si
Descripcin:
Calcula el complemento a 2 de op
Banderas:
OF DF
Arquitectura de Computadores 2
IF
TF
8
SF
ZF
AF
Facultad de Ingeniera
Microprocesador 8086
CBW
Formato:
CBW
Lgica:
si Al < 80h
sino
fin si
Descripcin:
Ah = 00h
Ah = FFh
Copia el bit 7 del registro AL en todos los bits del registro AH; es decir
expande el bit de signo de AL
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
INC
Formato:
INC
Tipo Args:
op
( r,m)
Lgica:
op = op + 1
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
DEC
Formato:
DEC
Tipo Args:
op
( r,m)
Lgica:
op = op 1
Descripcin:
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
Facultad de Ingeniera
Microprocesador 8086
LGICAS
AND
Formato:
AND
Tipo Args:
op1 ,
op2
( r,m)
(r,m,i)
Lgica:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
OR
Formato:
OR
Tipo Args:
op1 ,
op2
( r,m)
(r,m,i)
Lgica:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
XOR
Formato:
XOR
Tipo Args:
Lgica:
Descripcin:
op1 ,
op2
( r,m)
(r,m,i)
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
10
Facultad de Ingeniera
Microprocesador 8086
NOT
Formato:
NOT
Tipo Args:
op
( r,m)
Lgica:
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
CMP
Formato:
CMP
Tipo Args:
op1 ,
op2
( r,m)
(r,m,i)
Lgica:
op1 op2
Descripcin:
Resta op1 de op2 pero solo afecta las flags ignorando el resultado. Los
operandos quedan inalterados pudindose consultar las flags mediante una
operacin de bifurcacin condicional.
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
11
Facultad de Ingeniera
Microprocesador 8086
DESPLAZAMIENTO
SAL/SHL
Formato:
SAL
op1 ,
op2
SHL
op1 ,
op2
( r,m)
(1, CL)
Tipo Args:
Lgica:
SAL Al,1
CF
Antes
Al
a b c d e f
g h
Al
Despues h
Descripcin:
b c d e f
g h 0
Desplaza a la izquierda los bits de op1 el nro. de bits especificado por op2 .
Los bits a la derecha se rellenan con ceros.
Si el nro. de bits a desplazar es 1, se puede especificar directamente. Si es
mayor que 1 debe cargarse en CL.
CF contiene luego de la ejecucin el ultimo bit de op1 en ser desplazado
"fuera" de la representacin.
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
12
Facultad de Ingeniera
Microprocesador 8086
SHR
Formato:
SHR
op1 ,
Tipo Args:
( r,m)
(1, CL)
Lgica:
op2
SHR Al,1
Al
Descripcin:
CF
Antes
a b c d e f
g h
Despues
Al
0 a b c d e f
Desplaza a la derecha los bits de op1 el nro. de bits especificado por op2 .
Los bits a la derecha se rellenan con ceros.
Si el nro. de bits a desplazar es 1, se puede especificar directamente. Si es
mayor que 1 debe cargarse en CL.
CF contiene luego de la ejecucin el ultimo bit de op1 en ser desplazado
"fuera" de la representacin.
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
SAR
Formato:
SAR
Tipo Args:
Lgica:
op1 ,
op2
( r,m)
(1, CL)
SAR Al,1
Al
Antes
CF
a b c d e f
g h
Al
Despues
Descripcin:
a a b c d e f
Desplaza a la derecha los bits de op1 el nro. de bits especificado por op2 .
Los bits a la derecha se rellenan con el signo del primero operando.
Si el nro. de bits a desplazar es 1, se puede especificar directamente. Si es
mayor que 1 debe cargarse en CL.
CF contiene luego de la ejecucin el ultimo bit de op1 en ser desplazado
"fuera" de la representacin.
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
13
Facultad de Ingeniera
Microprocesador 8086
ROL
Formato:
ROL
Tipo Args:
op1 ,
op2
( r,m)
(1, CL)
Lgica:
Ej:
ROL Al,1
CF
Antes
Al
a b c d e f
g h
Al
Despues
Descripcin:
b c d e f
g h a
Rota a la izquierda los bits de op1 el numero de bits especificado por op2
Si el nro. de bits a desplazar es 1, se puede especificar directamente. Si es
mayor que 1 debe cargarse en CL.
CF contiene luego de la ejecucin el ultimo bit de op1 en ser desplazado
"fuera" de la representacin.
OF contiene el xor del CF con el bit ms significativo del resultado.
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
14
Facultad de Ingeniera
Microprocesador 8086
ROR
Formato:
ROR
Tipo Args:
op1 ,
op2
( r,m)
(1, CL)
Lgica:
Ej:
ROR Al,1
Descripcin:
Antes
Al
a b c d e f
Despues
Al
h a b c d e f
g h
CF
?
Rota a la derecha los bits de op1 el numero de bits especificado por op2
Si el nro. de bits a desplazar es 1, se puede especificar directamente. Si es
mayor que 1 debe cargarse en CL.
CF contiene luego de la ejecucin el ultimo bit de op1 en ser desplazado
"fuera" de la representacin.
OF contiene el xor del CF con el bit menos significativo del resultado.
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
15
Facultad de Ingeniera
Microprocesador 8086
MOVIMIENTO e I/O
MOV
Formato:
MOV
Tipo Args:
op1 ,
op2
( r,m)
(r,m,i)
Lgica:
op1 op2
Descripcin:
Atencin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
IN
Formato:
IN
Tipo Args:
Lgica:
op1 ,
op2
(AL, AX)
(i,DX)
si op1 = Al
Al = I/ O(op 2 )
sino si op1 = AX
Ax = I/ O(op 2 )
fin si
Descripcin:
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
16
Facultad de Ingeniera
Microprocesador 8086
OUT
Formato:
OUT
Tipo Args:
Lgica:
op1 ,
op2
(i,DX)
(Al, Ax)
si op1 = Al
I/ O(op 2 ) = Al
sino si op1 = Ax
I/ O(op 2 ) = Ax
fin si
Descripcin:
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
17
Facultad de Ingeniera
Microprocesador 8086
MANEJO DE FLAGS
CLC
Formato:
CLC
Lgica:
CF := 0
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
STC
Formato:
STC
Lgica:
CF := 1
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
CLI
Formato:
CLI
Lgica:
IF := 0
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
STI
Formato:
STI
Lgica:
IF := 1
Descripcin:
Banderas:
OF DF
Arquitectura de Computadores 2
IF
TF
18
SF
ZF
AF
PF
CF
Facultad de Ingeniera
Microprocesador 8086
Arquitectura de Computadores 2
19
Facultad de Ingeniera
Microprocesador 8086
BIFURCACIN INCONDICIONAL
CALL
Formato:
CALL
Tipo Args:
op1
(R,M,a,A,W)
Lgica:
Si llamada FAR
PUSH CS
PUSH IP
CS := segmento op1
IP := offset op1
sino { llamada NEAR }
PUSH IP
IP := op1
fin si
Descripcin:
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
20
Facultad de Ingeniera
Microprocesador 8086
JMP
Formato:
JMP
Tipo Args:
op1
(R,M,a,A,W)
Lgica:
Si llamada FAR
CS := segmento op1
IP := offset op1
sino
IP := op1
fin si
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
RET
Formato:
RET
Lgica:
POP IP
si procedimiento FAR
POP CS
fin si
Descripcin:
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
21
Facultad de Ingeniera
Microprocesador 8086
BIFURCACIN CONDICIONAL
Este conjunto de instrucciones se utilizan para efectuar un salto CONDICIONAL a una
direccin de memoria ubicada en el segmento CS a una distancia menor a 128 bytes de la
instruccin actual.
Todas verifican cierta condicin que deben cumplir algunos bits del registro de flags para
realizar la transferencia de control. Si dicha condicin no se cumple entonces el salto no se
realiza.
JA / JNBE (no considera signo)
Formato:
JA
op1
(Jump Above)
JNBE
op1
Tipo Args:
(d)
Lgica:
Si CF = 0 y ZF = 0
IP op1 + IP
Descripcin:
; comparar a y b
JA DIR.
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
22
Facultad de Ingeniera
Microprocesador 8086
JB
op1
JNAE
op1
JC
op1
Tipo Args:
(d)
Lgica:
Si CF = 1
IP op1 + IP
Descripcin:
; comparar a y b
JC DIR.
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
JNB
op1
JAE
op1
Tipo Args:
(d)
Lgica:
Si CF = 0
IP op1 + IP
Descripcin:
; comparar a y b
JNB DIR.
; saltar a DIR si a b
; sin considerar signo
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
23
Facultad de Ingeniera
Microprocesador 8086
JBE
op1
JNA
op1
Tipo Args:
(d)
Lgica:
Si CF = 1 o ZF = 1
IP op1 + IP
Descripcin:
; comparar a y b
JNA DIR.
; saltar a DIR si a b
; sin considerar signo
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
JE/JZ
Formato:
JE
op1
JZ
op1
Tipo Args:
(d)
Lgica:
Si ZF = 1
IP op1 + IP
Descripcin:
; comparar a y b
JC DIR.
; saltar a DIR si a = b
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
24
Facultad de Ingeniera
Microprocesador 8086
JG
op1
JNLE
op1
Tipo Args:
(d)
Lgica:
Si ZF = 0 y SF = OF
IP op1 + IP
Descripcin:
; comparar a y b
JG DIR.
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
JNG
op1
JLE
op1
Tipo Args:
(d)
Lgica:
Si ZF = 1 o SF OF
IP op1 + IP
Descripcin:
; comparar a y b
JNG DIR.
; saltar a DIR si a b
; considerando el signo
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
25
Facultad de Ingeniera
Microprocesador 8086
JNE/JNZ
Formato:
JNE
op1
JNZ
op1
Tipo Args:
(d)
Lgica:
Si ZF = 0
IP op1 + IP
Descripcin:
; comparar a y b
JNE DIR.
; saltar a DIR si a b
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
JNO
Formato:
JNO
Tipo Args:
op1
(d)
Lgica:
Si OF = 0
IP op1 + IP
Descripcin:
; a=a+b
JNO DIR.
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
26
Facultad de Ingeniera
Microprocesador 8086
JNS
Formato:
JNS
Tipo Args:
op1
(d)
Lgica:
Si SF = 0
IP op1 + IP
Descripcin:
; comparar a y b
JNS DIR.
; saltar a DIR si a b
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
JO
Formato:
op1
JO
Tipo Args:
(d)
Lgica:
Si OF = 1
IP op1 + IP
Descripcin:
; a=a+b
JO DIR.
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
27
Facultad de Ingeniera
Microprocesador 8086
JS
Formato:
op1
JS
Tipo Args:
(d)
Lgica:
Si SF = 1
IP op1 + IP
Descripcin:
; comparar a y b
JNS DIR.
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
28
Facultad de Ingeniera
Microprocesador 8086
MANEJO DE STACK
El stack del 8086 est implementado utilizando fundamentalmente las operaciones PUSH
y POP conjuntamente con los registros SS y SP.
El tope del stack est apuntado por SS:SP y las operaciones PUSH y POP los actualizan
de forma de obtener la semntica de stack como veremos ms adelante.
PUSH
Formato:
PUSH
Tipo Args:
op1
(R,M)
Lgica:
SP=SP-2
MOV SS:[SP], op1
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
POP
Formato:
POP
Tipo Args:
op1
(R,M)
Lgica:
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
PUSHF
Formato:
PUSHF
Lgica:
SP=SP-2
MOV SS:[SP],FLAGS
Descripcin:
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
29
Facultad de Ingeniera
Microprocesador 8086
POPF
Formato:
POPF
Lgica:
SP=SP-2
MOV FLAGS, SS:[SP]
Descripcin:
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
30
Facultad de Ingeniera
Microprocesador 8086
INTERRUPCIONES
La tabla de interrupciones del 8086 se encuentra en la direccin absoluta 0 y ocupa el
primer kilobyte de memoria.
Dicha tabla posee 256 entradas de 4 bytes cada una. La entrada i-sima de esta tabla
posee la direccin de memoria del manejador de la interrupcin i. Los primeros 2 bytes
corresponden al offset del manejador y los ltimos 2 corresponden al segmento del mismo.
INT
Formato:
op1
INT
Tipo Args:
(i)
Lgica:
PUSHF
IF=0
TF=0
CALL FAR tabla_int( op1 )
Genera una interrupcin software tipo op1 .
Descripcin:
Banderas:
OF DF
IF
TF
SF
ZF
AF
PF
CF
IRET
Formato:
IRET
Lgica:
RET
POPF
Descripcin:
Banderas:
Arquitectura de Computadores 2
OF DF
IF
TF
SF
ZF
AF
PF
CF
31
Facultad de Ingeniera
Microprocesador 8086
CARTILLA REDUCIDA
CARTILLA 8086/88
OP1
OP2
r,m
r,m,i
op1
r,m
r,m,i
op1
r,m
r,m,i
op1
r,m
r,m,i
op1
INSTRUCCIN
ADD op1 , op2
ADC op1 , op2
SUB op1 , op2
SBB op1 , op2
MUL op
DIV op
NEG op
CBW
INC op
DEC op
(Reducida)
Curso 1993
OPERACIN
op1 + op2
op1 + op2 + c
op1 op2
op1 op2 c
{DX:AX|AX} {AX|AL}* op
{AX|AL} {DX:AX|AL} div op
{DX|AH} {DX:AX|AX} mod op
\EMBED Equation op op * 1
AX AL (expande signo)
op op + 1
op op + 1
r
r
r,m
r,m
r,m
OISZPC
X XXXX
X XXXX
X XXXX
X XXXX
X ???X
? ????
X XXXX
X XXX
X XXX
r,m
r,m
r,m
r,m
r,m
r,m,i
r,m,i
r,m,i
op1
op1
op1
op
CMP
op1 , op2
op1 , op2
op1 , op2
op
op1 , op2
r,m,i
SAL
SAR
SHL
SHR
ROL
ROR
op1 , op2
op1 , op2
op1 , op2
op1 , op2
op1 , op2
op1 , op2
r,m
r,m
r,m
r,m
r,m
r,m
1,CL
1,CL
1,CL
1,CL
1,CL
1,CL
MOV
op1 , op2
r,m
r,m,i
IN
OUT
op1 , op2
op1 , op2
AL,AX
i,DX
i,DX
AL,AX
AND
OR
XOR
NOT
CLC
STC
CLI
STI
op1 and op 2
op1 or op 2
op1 xor op 2
not op
(2)
(2)
(2)
(2)
(3)
0 XXX0
0 XXX0
0 XXX0
X XXXX
a
a
a
a
la
la
la
la
izq.
der. (7)
izq.
der.
X
X
X
X
X
X
JMP
op
CALL
op
RET
Arquitectura de Computadores 2
a,R,M
A,W
a,R,M
A,W
a,R,M
A,W
XXXX
XXXX
XXXX
XXXX
X
X
0
1
0
1
op
IP
(5)
CS:IP op
(6)
PUSH Next IP,
IP IP + op (5)
PUSH Next IP, PUSH CS, CS:IP op (6)
POP IP
(5)
POP CS, POP IP (6)
32
Facultad de Ingeniera
Microprocesador 8086
INSTRUCCIN
JA/JNBE op
JB/JNAE/JC op
JNB/JAE op
JBE/JNA op
op
JE/JZ
JG/JNLE op
JGE/JNL op
JL/JNGE op
JNG/JLE op
op
JNC
JNE/JNZ op
op
JNO
op
JNS
op
JO
op
JS
INT
CARTILLA 8086/88
OP1
OP2
d
d
d
d
d
d
d
d
d
d
d
d
d
d
d
si
si
si
si
si
si
si
si
si
si
si
si
si
si
si
op
0..ffh
op
op
R,M
R,M
SP
IRET
PUSH
POP
PUSHF
POPF
(Reducida)
Curso 1993
OPERACIN
c=0 ^ z=0
IP op + IP
c=1
IP op + IP
c=0
IP op + IP
c=1 or z=1 IP op + IP
z=1
IP op + IP
z=0 ^ s=o
IP op + IP
s=o
IP op + IP
s<>o
IP op + IP
z=1 or s<>o IP op + IP
c<>0
IP op + IP
z<>0
IP op + IP
o<>0
IP op + IP
s<>0
IP op + IP
o=1
IP op + IP
s=1
IP op + IP
SP - 2, E(SP) op1
op1 E(SP), SP SP + 2
SP SP - 2, E(SP) flags
flags E(SP), SP SP + 2
OISZPC
X XXXX
REFERENCIAS:
flags : registro con todas las banderas de condicin (O, I, S, Z, P, C)
Ultima columna de la tabla.
1,0, espacio : set, reset incondicional, no se afecta.
X
: afectada para reflejar resultado de la operacin.
NOTAS: (1)
(2)
(3)
(4)
(5)
(6)
(7)
:
:
:
:
:
:
:
Arquitectura de Computadores 2
33
Facultad de Ingeniera