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