Está en la página 1de 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
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

EJEMPLO: PUSH, POP

EJEMPLO: PUSH, POP

EJEMPLO: PUSH, POP

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

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

Con un valor en forma inmediata


CMP
CMP

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

Esta instruccin es frecuentemente usada


para ver si un bit o un conjunto de bits
tienen el valor 1 0

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.

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

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

DIFERENCIAS ENTRE SUB-RUTINA


E INTERRUPCION
SUB-RUTINA
Son llamdas
unicamente por
instrucciones
(Software)
Salva en el Stack
unicamente la
direccin de retorno
Necesitan un medio
para pasar datos al
programa principal o
viceversa

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

También podría gustarte