Académique Documents
Professionnel Documents
Culture Documents
Fa c u l t a d d e I n g e n i e r a d e Pro d u c c i n y S e r v i c i o s
Escuela Profesional de Ingeniera Electrnica
Curso:
Arquitectura De
Computadoras
LABORATORIO N 3
Ensamblador 8088/8086, direccionamiento
y programacin, juego de instrucciones
manual INTEL (Windows y Linux Ubuntu)
Integrantes:
GRUPO: 4
2015
Contenido:
1
Introduccin.............................................................................................
Almacenamiento De Datos......................................................................
Registros..................................................................................................
4.1
4.2
Registros ndice.................................................................................
4.3
Registros Apuntadores.......................................................................
4.4
Registros De Banderas.......................................................................
4.5
Registros De Segmento.....................................................................
4.6
Segmentacin..........................................................................................
Modos De Direccionamiento..................................................................
7.1
Direccionamiento Inmediato............................................................
7.2
Direccionamiento A Registro............................................................
7.2.1
7.2.2
Instrucciones..........................................................................................
8.1 Instrucciones De Transferencia De Datos (No Afectan
Flags)........................................................................................................
8.2 Instrucciones Aritmeticas (Afectan los flags AF, CF, OF,
PF, SF, ZF).................................................................................................
8.3
Bibliografia.............................................................................................
1 Introduccin
El lenguaje Ensamblador como cualquier lenguaje de
programacin es un conjunto de palabras que le indican al
ordenador lo que tiene que hacer. Sin embargo la diferencia
fundamental es que cada instruccin escrito en el lenguaje
ensamblador tiene una correspondencia exacta con una
operacin del procesador. Por lo que son operaciones muy
sencillas tales como: Cargar 32 en el registro BX o transferir
el contenido del registro CL al CH. As pues, las palabras del
lenguaje ensamblador son nemotcnicos que representan el
cdigo maquina lenguaje que entiendo el procesador.
3 Almacenamiento De Datos
El 8086/88 usa el formato de almacenamiento denominado
little endian, esto quiere decir que el byte menos
significativa (LSB) del dato es guardada en la parte baja de
la memoria. Por ejemplo el dato 0x1122 ser almacenado
en memoria:
4 Registros
DL
DX (Datos)
Registros ndices
4.1 Registros De
General
SI Propsito
Source
Index
(ndice origen)
Registros AX:
de Segmentos
Registro
El registro AX es el registro
acumulador, es utilizado para operaciones que
CS
Code Segment
implican
entrada/salida,
y multiplicacin y
(Segmento
divisin (estas dos
ltimasde
en conjunto con el
Cdigo)
registro DX)
DS
Data Segment
(Segmento Extra)
(Segmento de Pila)
Registro apuntador de
instrucciones
O D I T S Z
A
P
C
F F F F F F
F
F
F
6 Segmentacin
12
7 Modos De Direccionamiento
Generacin de la direccin de la instruccin:
Todos los registros internos del 8086/8088 son de 16 bits.
El bus de direccin es de 20 bits, por lo que se usa ms de
un registro interno para generar la direccin de 20 bits.
13
destino, fuente
Ejemplos:
MOV AX, BX
; AX BX
MOV AL, BL
; AL BL
al
operando.
En
este
tipo
de
15
16
COUNT
ha
sido
previamente
definido,
04FAH
0872H
17
el
[BP] [DI], AX
; el offset
; el offset
es BP + DI
MOV
es BX + SI
Este es el modo de direccionamiento ms complejo. Es
idntico al modo de direccionamiento anterior, excepto
que se suma una constante.
Ejemplo: Suponga que tenemos los siguientes valores
en los registros:
DI =
0367H
BX =
7890H
COUNT =0012H
7C09H
DIRECCIONAMIENTO DE REGISTRO INDIRECTO
CON UN REGISTRO BASE Y UN REGISTRO NDICE
Y UN REGISTRO CONSTANTE.
Este modo de direccionamiento indica que el offset
especificado por la suma de DI + BX + COUNT sea
usado para mover el dato en memoria en el registro
AX.
MOV AX, COUNT [BX] [DI]
18
8 Instrucciones
8.1 Instrucciones De Transferencia De Datos
(No Afectan Flags)
MOV dest,src
Copia el contenido del operando fuente (src) en el
destino (dest).
Operacin: dest <- src
Las posibilidades son:
1. MOV reg,{reg|mem|inmed}
2. MOV mem,{reg|inmed}
3. MOV {reg16|mem16},{CS|DS|ES|SS}
4. MOV {DS|ES|SS},{reg16|mem16}
PUSH src
Pone el valor en el tope del stack.
Operacin: SP <- SP - 2, [SP+1:SP] <- src donde src =
{reg16|mem16|CS|DS|ES|SS}.
POP dest
Retira el valor del tope del stack ponindolo en el lugar
indicado.
Operacin: dest <- [SP+1:SP], SP <- SP + 2 donde dest
= {reg16|mem16|DS|ES|SS}.
XCHG reg,{reg|mem}
Intercambia ambos valores.
19
23
9 Bibliografia
-
http://www.wikipedia.org
http://www.intel.com
http://www.slideshare.net
http://www.alpertron.com.ar/INST8088.HTM
http://www.monografias.com
30
31