Vous êtes sur la page 1sur 20

Arquitectura de

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 en forma inmediata un valor a un registro
MOV DL,01 ;byte
MOV AX,1234H ;Word
Mover en forma inmediata un valor a la memoria
MOV MByte,12H ;byte
MOV MWord,1234H ;Word
INSTRUCCIN MOV

Mover registro a registro


MOV DL,BL ;byte
MOV AX,BX ;Word
Mover registro a memoria
MOV MByte,BL ;byte
MOV MWord,AX ;Word
Mover memoria a registro
MOV CL,MByte ;byte
MOV 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
EJEMPLO: PUSH, POP

EJEMPLO: PUSH, POP


EJEMPLO: PUSH, POP

INSTRUCCIONES PUSH,POP
PUSH AX
PUSH BX
PUSH CX

POP CX
POP BX
POP AX
INSTRUCCIN XCHG
Intercambia el contenido de dos operandos
Formato general XCHG Destino,Fuente
Ejemplo:
XCHG AX,BX

INSTRUCCIN XLAT
MOV AL,01
MOV BX,1000H
XLAT
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 AL,BL
ADD BX,CX
INSTRUCCIN ADD
Una constante a un registros
ADD AL,2AH
ADD BX,1234H
Un registro a memoria
ADD MWORD,DX
El contenido de memoria a un registro
Una constante a memoria

INSTRUCCIN INC
Incrementa en uno el contenido de un
registro o un contenido de la memoria
Formato General: INC destino
Ejemplo:
INC CX
INC BL
INC WORD_VAR
INC 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 AL,BL
CMP BX,CX
Con un valor en forma inmediata
CMP AL,11H
CMP CX,10H

INSTRUCCIN CMP
Registros con memoria
CMP CL,Mbyte
CMP BX,MWord
Ejemplo
CMP AL,BL
JL menor
Continua
.
.
Menor:
INSTRUCCIN DE ROTACION A LA
IZQUIERDA ROL
Formato: ROL destino contador
Ejemplo:
1. MOV CL,3
ROL BX,CL
2. ROL AL,01

INSTRUCCIONES DE ROTACION
INSTRUCCIONES DE ROTACION

INSTRUCCIONES DE ROTACION
INSTRUCCIONES DE
DESPLAZAMIENTOS

INSTRUCCIN TEST
Realiza un AND entre los operandos pero no
los cambia
Formato General: TEST destino,fuente
Ejemplos:
TEST AL,BL
TEST BX,CX
TEST DL,03H
Esta instruccin es frecuentemente usada
para ver si un bit o un conjunto de bits
tienen el valor 1 0
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.
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.
Instruccin CLD: pone el Flag de direccin
D a cero, para el incremento de SI y DI
Instruccin STD:pone el Flag de direccin
D a uno, para el decremento de SI y DI
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
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).
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
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
INSTRUCCIN CALL
Ejemplo:
CALL Jules
.
.
Jules PROC NEAR

RET
Jules ENDP

INSTRUCCIN RET
Retorna de la sub-rutina
NEAR RET recupera del Stack el IP
FAR RET recupera del Stack el CS y
el IP.
DIFERENCIAS ENTRE SUB-RUTINA
E INTERRUPCION
SUB-RUTINA INTERRUPCION
Son llamdas Son llamadas por
unicamente por Hardware o Software
instrucciones
(Software) Salva la direccin de
Salva en el Stack retorno y el estado del
unicamente la registro de Status
direccin de retorno No es necesario para
Necesitan un medio las interrupciones
para pasar datos al
programa principal o
viceversa

Vous aimerez peut-être aussi