You are on page 1of 4

1er LABORATORIO DE ARQUITECTURA Y ORGANIZACION DEL COMPUTADOR

Objetivo del Laboratorio: Este laboratorio consiste en familiarizarse con la herramienta


que se va utilizar para trabajar con el Lenguaje
1
Ensamblador. Para ello se utilizar los
siguientes programas del Turbo :
- Turbo.e!e " Tasm.e!e
- Tlin!.e!e " Td.e!e
Por otro lado el alumno conocer la estructura de un programa en ensamblador# realizar la
definici$n de segmentos: datos# pila# c$digo. %dems la inicializaci$n & termino de un
programa.
Itrod!""i# Te#ri"a $
La estructura de un programa en ensamblador es la siguiente:
Pila segment stack ; Declara el segmento de pila
...
pila ends
Datos segment ; Declara el segmento de datos
...
datos ends
Codigo segment ; Declara el segmento de codigo
inicio proc far
assume cs:codigo, ds:datos, ss:pila
...
inicio endp
codigo ends
end inicio
omo vemos bsicamente esta conformado por tres segmentos que son: pila# datos# c$digo.
'n programa ensamblador contiene dos tipos de sentencias: (nstrucciones & )irectivas.
Las instrucciones son representaciones simb$licas del juego de instrucciones del
microprocesador. En el programa modelo se tiene las siguientes instrucciones:
Mov%& Transfiere un b&te o palabra desde el operando fuente al operando destino.
Lea%& Transfiere el desplazamiento del operando fuente al operando destino.
It%& %ctiva el procedimiento de instrucci$n especificado por el operando.
Ret%"*etorna de un procedimiento.
P!'(%& pone una palabra en la pila.
Las directivas indica al ensamblador que hacer con las instrucciones & datos. En el programa
modelo se tiene las siguientes directivas:
A''!)e%& (ndica al ensamblador el registro del segmento que se va ha utilizar para
direccionar cada segmento dentro del m$dulo# para al segmento de c$digo: cs# para el de
datos: ds# para el de pila: ss .
*e+)et%& indica el inicio del segmento +nombre,. El final del segmento se indica
mediante ends.
Db." reserva memoria para una variable tipo b&te -. bit/# inicializando o no dicho b&te &
los posteriores.
Inicio de trabajo:
1. Llamar al *edactor Turbo.E!e & escriba un programa -llamado E0E1PL2 con e!tensi$n
.%31# del programa modelo/
2. ompile el programa modelo con el T%31.E4E con el fin de generar un dos archivos un
listing & un 2bject -el listing contiene ma&or informaci$n# resultado de la compilaci$n/.
Ejemplo:
):5T%56(78 Tasm E0E1PL2.%319L
1 Ing.Sally Torres Arquitectura y organizacin del computador
3e crea los archivos: E0E1PL2. 260 E0E1PL2. L3T
3. on el redactor se puede ver nuestro E0E1PL2. L3T el cual contiene ma&or informaci$n
de c$mo esta nuestro programa.
4. ree el ejecutable .,E0E1PL2.E4E, de nuestro programa con la a&uda de Tlin:.E4E
):5T%56(78Tlin: ejemplo.obj
-verificar en el directorio si se encuentra/
5. ;erificar paso a paso el funcionamiento de nuestro programa con a&uda del Turbo
)ebugger
):5T%56(78T) ejemplo.e!e
Co"e,to' -!da)etale'$
Tasm es el compilador del Lenguaje Ensamblador# este complilador permite hacer el anlisis
de la sinta!is del programa -comprobar si est correctamente escrito nuestro programa/ &
emitir los errores indicando la l<nea de error. E
=
l compilador da por resultado el archivo. 2bj el
cual sirve para crear el ejecutable. E4E & adems da un archivo de te!to .L3T cuando se pone
la opci$n 9L# este nuevo archivo contiene informaci$n de la compilaci$n del programa. Para ver
las opciones de estos dos programas se utiliza:
):5T%56(758T%31 > ):5T%56(78TL(7?
Estos dos archivos se generan cuando no ha& errores en la sinta!is del programa.
"En la pantalla del T) se puede ver:
3:@@@ 6.ABC 12; %4#BCA
P*2D*%1%
%4 BCA
*egistro de 'so
comEn
)3 BC6F
*egistros de
3egmentaci$n
G@
.
.
.
)G@
6
%
7
)
E
*
%
3
)3: @@1=
3ED1E7T2 )E )%T23
33: @1@=
P(L%

Orde de Reali.a"i# del Laboratorio
1." 1odificar el ,ro+ra)a )odelo de acuerdo a sus datos personales.
=." Escribir el programa modificado en el editor t!rbo%e/e.
C." ompilar el programa 0%a') con el compilador ta')%e/e & obtener los archivos: 0%obj1
0%l't.
H." En el caso de que surgan errores corregirlos.
B." rear el programa ejecutable 0%e/e con el montador tli2%e/e
I." orrer el programa generado & comprobar su correcta ejecuci$n.
F." omprobar paso a paso la ejecuci$n del programa con el t!rbo Deb!++er.
2 Ing.Sally Torres Arquitectura y organizacin del computador
Re'!ltado' del laboratorio
)ocumentar los siguientes resultados:
1." El listing.
=." *esultados de la ejecuci$n del programa.
C." *esultados transitorios del programa en el T)# que demuestren su correcto
C
funcionamiento.
Programa Modelo
Pila segment stack ;Declara del segmento de pila
db 128 dup('pila'
pila ends
Datos segment ;Declara segmento de datos
uni!ersidad db '"ni!ersidad nacional del Callao',1#,1$,'%'
facultad db 'nombre de la facultad', 1#, 1$, '%'
escuela db '&scuela profesional', 1#, 1$, '%'
cod db 'codigo del estudiante ', 1#, 1$, '%'
nombre db 'nombres del estudiante', 1#, 1$, '%'
apellido db ''pellidos del estudiante', 1#, 1$, '%'
datos ends
Codigo segment ;Declara segmento de codigo
inicio proc far
assume cs:codigo, ds:datos, ss:pila
;Poner en la pila la dirreccion de retorno al D()
pus* ds
sub a+,a+
pus* a+
;iniciali,a el segmento de datos con su registro de segmentaci-n
mo! a+,datos
mo! ds,a+
lea d+,uni!ersidad ;Poner en d+ la dirrecci.n de
;los datos /uni!ersidad/
mo! a*,$0* ;1o!er a a* el codigo de la funci.n de
;salida de una linea de caracteres en la pantalla
;para la interrupci.n del D()
int 21* ;2lama a la interrupci.n 21*
lea d+,facultad
mo! a*,$0*
int 21*
lea d+,escuela
mo! a*,$0*
int 21*
lea d+,cod
mo! a*,$0*
int 21*
lea d+,nombre
mo! a*,$0*
int 21*
lea d+,apellido
mo! a*,$0*
int 21*
ret ;retorno al D()
inicio endp
codigo ends
3 Ing.Sally Torres Arquitectura y organizacin del computador
end inicio

You might also like