Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arqui - Compu (Clase 12) Inst. 8086 PDF
Arqui - Compu (Clase 12) Inst. 8086 PDF
Computadoras
Clase 12
DESCRIPCION DE ALGUNAS
INSTRUCCIONES MAS USADAS DEL 8086
INSTRUCCIN MOV
Mueve bytes o palabras (words) desde/hacia
registros/memoria inmediato
Formato general MOV Destino,Fuente
Opciones
Mover
MOV
MOV
Mover
MOV
MOV
en forma inmediata
DL,01
AX,1234H
en forma inmediata
MByte,12H
MWord,1234H
un valor a un registro
;byte
;Word
un valor a la memoria
;byte
;Word
INSTRUCCIN MOV
Mover
MOV
MOV
Mover
MOV
MOV
Mover
MOV
MOV
registro a registro
DL,BL
;byte
AX,BX
;Word
registro a memoria
MByte,BL
;byte
MWord,AX
;Word
memoria a registro
CL,MByte
;byte
DX,MWord
;Word
ALMACENAMIENTO DE DATOS EN
LA MEMORIA
INSTRUCCIN PUSH
Guarda informacin de 16 bits en la
memoria Stack.
Formato general PUSH Origen
Ejemplo: PUSH AX
INSTRUCCIN POP
Recupera informacin de 16 bits en la
memoria Stack.
Formato general POP Destino
Ejemplo: POP AX
INSTRUCCIONES PUSH,POP
PUSH
PUSH
PUSH
AX
BX
CX
POP
POP
POP
CX
BX
AX
INSTRUCCIN XCHG
Intercambia el contenido de dos operandos
Formato general XCHG Destino,Fuente
Ejemplo:
XCHG
AX,BX
INSTRUCCIN XLAT
MOV
MOV
XLAT
AL,01
BX,1000H
INSTRUCCIN LEA
Transfiere el desplazamiento del
operando fuente al destino.
El operando fuente debe de ser un
operando de memoria (byte o palabra)
El operando destino es un registro de
16 bits pero no es un registro de
segmento.
Ejemplo: LEA CX,DIRECCION
INSTRUCCIN ADD
Suma dos operandos y el resultado lo
deposita (o almacena en el operando
destino).
Formato: ADD destino,fuente
(Fuente)+(Destino)
Destino
Se puede sumar:
El contenido de dos registros
ADD
ADD
AL,BL
BX,CX
INSTRUCCIN ADD
Una constante a un registros
ADD
ADD
AL,2AH
BX,1234H
Un registro a memoria
ADD
MWORD,DX
INSTRUCCIN INC
Incrementa en uno el contenido de un
registro o un contenido de la memoria
Formato General:
INC destino
Ejemplo:
INC
INC
INC
INC
CX
BL
WORD_VAR
BYTE_VAR
INSTRUCCIN CMP
Compara dos valores, los Flags se modifican
de acuerdo al resultado
Formato General:
CMP destino,Fuente
Se pueden hacer las siguientes comparaciones
Entre registros
CMP
CMP
AL,BL
BX,CX
AL,11H
CX,10H
INSTRUCCIN CMP
Registros con memoria
CMP
CMP
CL,Mbyte
BX,MWord
Ejemplo
CMP
JL
Continua
.
.
AL,BL
menor
Menor:
INSTRUCCIN DE ROTACION A LA
IZQUIERDA ROL
Formato: ROL
Ejemplo:
destino contador
1. MOV CL,3
ROL BX,CL
2. ROL AL,01
INSTRUCCIONES DE ROTACION
10
INSTRUCCIONES DE ROTACION
INSTRUCCIONES DE ROTACION
11
INSTRUCCIONES DE
DESPLAZAMIENTOS
INSTRUCCIN TEST
Realiza un AND entre los operandos pero no
los cambia
Formato General: TEST destino,fuente
Ejemplos:
TEST
TEST
TEST
AL,BL
BX,CX
DL,03H
12
INSTRUCCIN MOVS
Mueve un string de (bytes/words) de una
localidad de memoria a otra (se usa
repetidas veces la instruccin MOVS)
El string fuente est en el segmento de
datos y apuntado por el registro SI y es
transferido a un buffer del segmento extra
apuntado por DI.
El numero de bytes (words) a ser movidos
est especificado en el registro CX
INSTRUCCIN MOVS
Cada vez que el MOVS es ejecutado:
1. El SI y el DI es incrementado (o
decrementado dependiendo del valor del
Flag de direccin D)
2. El CX es decrementado hasta que llegue
a cero.
13
INSTRUCCIN MOVS
Ejemplo
LEA SI,FUENTE
LEA DI,DESTINO
MOV CX,100H
CLD
REP
MOVS
;(MOVSB MOVSW)
INSTRUCCIN USADAS EN EL
MANEJO DE STRINGS
Instruccin REP
Causa que la siguiente de String se repita.
La siguiente instruccin a REP se repetir
hasta que CX sea cero.
14
INSTRUCCIN CMPS
Compara un string (byte/word) de una
localidad de memoria con otro de otra
localidad
Es usada despus de la instruccin REPE.
El string en el segmento de datos apuntado
por SI es comparado con el string del
segmento extra apuntado por DI
El numero de bytes a ser comparados est
especificado en el registro CX
INSTRUCCIN CMPS
Ejemplo
LEA SI,FUENTE
LEA DI,DESTINO
MOV CX,100H
CLD
REPE
CMPS
;(CMPSB CMPSW)
JZ
IGUAL
Si Z=1 son iguales
Si Z=0 son diferentes
15
INSTRUCCIN REPE
Origina que la siguiente instruccin
se repita CMPS se repita hasta que
CX sea cero el resultado de la
comparacin genere que el Flag de
Z=0 como resultado de que 2 byes o
words no son iguales.
REPE
CMPS
Z=1 Iguales
Z=0 Diferentes
INSTRUCCIN SCAS
Opera sobre un slo un string
(byte/word) ubicado en el segmento
de datos y apuntado por el registro SI
El contenido del registro AL ( AX si es
word) es comparado con sucesivos
bytes (words) del string.
Es usado normalmente con la
instruccin REPNE (repetir mientras no
son iguales).
16
INSTRUCCIN SCAS
Ejemplo
LEA SI,FUENTE
MOV Al,05H
MOV CX,100H
CLD
REPNE SCAS
;(SCASB SCASW)
JZ
ENCONTRE
Si Z=1 Se encontr el Byte
Si Z=0 No se encontr el Byte
INSTRUCCIN REPNE
Las instrucciones REPNE Y SCAS se
repetirn hasta que CX=0 o hasta
que el resultado de la operacin
cause que el Flag Z sea puesto a 1
17
INSTRUCCIN CALL
Formato
CALL
Rutina
Transfiere el control a la rutina y
pone la direccin de retorno en el
Stack.
Esta instruccin puede ser corta
cercana (NEAR).
Esta instruccin puede ser larga o
lejana (FAR)
INSTRUCCIN CALL
Cuando es corta cercana (NEAR) el
contenido del IP es puesto en el
Stack.
Cuando es larga o lejana (FAR) el CS
y el IP es puesto en el Stack
18
INSTRUCCIN CALL
Ejemplo:
CALL
Jules
Jules
.
.
PROC
Jules
RET
ENDP
NEAR
INSTRUCCIN RET
Retorna de la sub-rutina
NEAR RET recupera del Stack el IP
FAR RET recupera del Stack el CS y
el IP.
19
INTERRUPCION
Son llamadas por
Hardware o Software
Salva la direccin de
retorno y el estado del
registro de Status
No es necesario para
las interrupciones
20