PRACTICA 2 ARQUITECTURA
-
Upload
gonzalo-valencia -
Category
Documents
-
view
271 -
download
7
description
Transcript of PRACTICA 2 ARQUITECTURA
6UNAD. Valencia Gonzalo, Martnez Yenny, Practicas 1 y 3 Arquitectura de Computadores .
(PRACTICAS 2 ARQUITECTURA COMPUTADORES Valencia Gonzalo, Martnez [email protected]@unadvirtual.edu.co Tutor, Manuel Sierra Rodrguez
CEADUniversidad Nacional Abierta y Distancia ResumenDesarrollo de la prctica 2 de laboratorio propuesta en el aula virtual por el director del curso, realizando ilustraciones de cada uno de los pasos realizados.ndice de TrminosCPU, Secuenciador, Memoria, decodificador, bus de datos, msx88.I. INTRODUCCINLa elaboracin de esta prctica tiene como objetivo conocer e indagar acerca del funcionamiento de la cpu, mediante la utilizacin de un simulador llamado MSX88 que nos mostrar de manera grfica como se adelantan los procesos internos de la cpu y la cantidad de pasos que se realizan para obtener el resultado de una operacin solicitada a la mquina a fin de lograr una mayor comprensin de las funciones y componentes que intervienen en los procesos de la cpu.
Esta prctica se elaborar mediante la utilizacin del software MSX88 y DOS Box que nos sirven para simular el comportamiento interno de la Cpu.II. ejercicio 1.Escribir un programa que realice la suma de los datos inmediatos (el 20h y el 30h) que se encuentran en los registros AX y DX del procesador, el resultado lo almacena en AX.
Para realizar esta prctica lo primero que debemos hacer es descargar e instalar los programas requeridos para la misma, MSX88 y DOS Box, luego de tenerlos descargados en la carpeta raz del equipo en este caso C: guardamos la carpeta de descarga de MSX88 dando le un nombre para nuestro caso la nombramos igual (msx88), Ejecutamos el instalador de DOS Box y luego creamos un archivo desde el bloc de notas con las siguientes instrucciones:ORG 2000H
MOV AX,20H
MOV DX,30H
ADD AX,DX
END
ENDCon el archivo ya listo lo guardamos con la extensin .ASM en la carpeta msx88 alojada en C.
Damos inicio a las instrucciones solicitadas en la prctica ejecutando el DOS Box, digitamos el comando mount c: c:\msx88, con este comando lo que hacemos es montar el disco local c en el simulador y adems la carpeta msx88 que contiene el simulador, posteriormente ingresamos a c: para crear los ficheros necesarios para la ejecucin del programa de esta manera digitamos el siguiente comando:ASM88 prog1.ASM
En este caso nos habilita la opcin de crear el fichero objeto (.O) y el fichero Fuente (.LST) que deben llevar el nombre del archivo (prog1).
Imagen 1 Creacin de ficheros .o y .lstPosteriormente se debe digitar el comando:LINK88
Esta instruccin nos crea un nuevo fichero (.EJE) que en este caso es el ejecutable del programa.
Imagen 2 Creacin de ficheros .ejeDentro de la carpeta msx88 llamamos el primer programa a ejecutar para este caso prog1 que fue el nombre que se le dio a nuestro archivo inicial, estas instrucciones llaman al ejecutable de msx88.
Imagen 3Llamada al programaLuego el programa nos muestra la ventana principal del simulador msx88 que contiene las siguientes partes:
Bloques de memoria principal
CPU
ALU
Decodificador
Secuenciador
Buses de direccin y de datos
Perifricos
Entrada de comandos
Para cargar nuestro programa digitamos la instruccin L (load) y el nombre del programa que queremos ejecutar en nuestro caso prog1 + la tecla F6
Imagen 4Pantalla Load del programa
Para realizar las operaciones de suma en este simulador se requieren 8 pasos en 6 ejecuciones de instruccin descritos a continuacin.
Paso 1: Inicia en el IP quien solicita informacin al bloque de memoria, el secuenciador enva la orden al bloque de memoria para que retorne por el bus de datos al registro de instruccin, de aqu pasa al decodificador quien identifica la orden como MOV y de este pasa al secuenciador, luego el ip aumenta en uno, enva por el bus de datos a la memoria guardando el nmero 20 en el registro AX.Paso 2: Realiza los mismos movimientos que el paso 1, pero en este caso guarda 00 en la posicin AX.
Paso 3: Esta instruccin enva BA al decodificador quien lo representa con el comando MOV y le indica que se mueva el argumento al registro DX.Paso 4: Esta instruccin realiza los mismos movimientos que el paso n 1, enviando el numero 30 al registro DX.
Paso 5: Realiza los mismos movimientos que el paso anterior enviando esta vez el numero 00 al registro DX.
Hasta aqu podemos observar que se han guardado los nmeros necesarios para la operacin en la cpu.
Imagen 5 Registro de nmeros en la CPU.
Paso 6: Esta instruccin realiza lectura de memoria y enva el valor 03 al decodificador para su interpretacin.
Paso 7: En este paso se realiza tambin la lectura de memoria y enva el valor C2 al decodificador, este a su vez toma los valores y los interpreta como la operacin a realizar que en este caso es ADD (suma).Paso 8: En este paso se toman los valores guardados en AX y los enva al primer operando de la ALU, luego toma los valores de DX y los enva al segundo operando, se realiza la operacin que en este caso es suma y se enva el resultado a el registro AX, al tiempo que se activa el flag P que significa paridad de bits.
Imagen 6 Resultado de la operacinIII. ejercicio 2.Cambiar los datos que se suman por los datos (9876h y 2000h) y repetir los pasos de la seccin 1 hasta finalizar la simulacin.Para el desarrollo de este ejercicio se realizan los mismos pasos que en el primero como son:1. creacin del archivo .ASM en el bloc de notas, esta vez se llamar prog2
2. Montar el disco local c en el DOS Box para la ejecucin del programa
3. Creacin de los ficheros .O .LST con el comando ASM88
4. Creacin del fichero .EJE con el comando LINK88
5. Ejecucin del programa con la instruccin load (L)Pasos que realiza el programa:
Paso 1: Solicitud de informacin al bloque de memoria, quien enva la informacin BA al decodificador e interpreta la accin a realizar como MOV y de este pasa al secuenciador, luego el ip aumenta en uno, enva por el bus de datos a la memoria guardando el nmero 76 en el registro AX.
Paso 2: Realiza los mismos movimientos que el paso 1, guardando 98 en la posicin AX.Paso 3: Esta instruccin enva BA al decodificador quien lo representa con el comando MOV y le indica que se mueva el argumento al registro DX.
Paso 4: Esta instruccin realiza los mismos movimientos que el paso n 1, enviando el numero 00 al registro DX.
Paso 5: Realiza los mismos movimientos que el paso anterior enviando esta vez el numero 20 al registro DX.
Al igual que el ejercicio anterior observamos cmo se encuentra el simulador hasta esta parte de la ejecucin.
Imagen 7 Registro de nmeros en la CPU
Paso 6: Esta instruccin realiza lectura de memoria y enva el valor 03 al decodificador para su interpretacin.
Paso 7: En este paso se realiza tambin la lectura de memoria y enva el valor C2 al decodificador, este a su vez toma los valores y los interpreta como la operacin a realizar que en este caso es ADD (suma).
Paso 8: En este paso se toman los valores guardados en AX y los enva al primer operando de la ALU, luego toma los valores de DX y los enva al segundo operando, se realiza la operacin que en este caso es suma y se enva el resultado a el registro AX, al tiempo que se activa el flag S que muestra el estado de signo.
Imagen8 Resultado de la operacin
IV. ejercicio 3.
Cambiar la operacin aritmtica, en vez de sumar se desea restar para ello cambiar la instruccin ADD AX,DX por SUB AX, DX en el cdigo.1. Para realizar este ejercicio procedemos a digitar un nuevo archivo .MSA que llamaremos prog3 con las siguientes instrucciones:ORG 2000H
MOV AX,9876H
MOV DX,2000H
SUB AX,DX
END
END2. Montamos el disco local c en el DOS Box para la ejecucin del programa
3. Creamos de los ficheros .O .LST con el comando ASM88
4. Creamos del fichero .EJE con el comando LINK88
5. Ejecucin del programa con la instruccin load (L)
Pasos que realiza el programa:
Paso 1: Solicitud de informacin al bloque de memoria, quien enva la informacin BA al decodificador e interpreta la accin a realizar como MOV y de este pasa al secuenciador, luego el ip aumenta en uno, enva por el bus de datos a la memoria guardando el nmero 76 en el registro AX.
Paso 2: Realiza los mismos movimientos que el paso 1, guardando 98 en la posicin AX.
Paso 3: Esta instruccin enva BA al decodificador quien lo representa con el comando MOV y le indica que se mueva el argumento al registro DX.
Paso 4: Esta instruccin realiza los mismos movimientos que el paso n 1, enviando el numero 00 al registro DX.
Paso 5: Realiza los mismos movimientos que el paso anterior enviando esta vez el numero 20 al registro DX.
Paso 6: Esta instruccin realiza lectura de memoria y enva el valor 2B al decodificador para su interpretacin.
Paso 7: En este paso se realiza tambin la lectura de memoria y enva el valor C2 al decodificador, este a su vez toma los valores y los interpreta como la operacin a realizar que en este caso es SUB (resta).
Imagen9 Registro de valores en AX y DX decodificacin de operacin
Paso 8: En este paso se toman los valores guardados en AX y los enva al primer operando de la ALU, luego toma los valores de DX y los enva al segundo operando, se realiza la operacin que en este caso es resta y se enva el resultado a el registro AX, al tiempo que se activa el flag O que significa desbordamiento aritmtico.
Como se muestra en la siguiente imagen:
Imagen10 Resultado de la operacin V. ejercicio 4.
Cambiar el orden de los operandos en la prctica anterior, escribir SUB DX, AX y observar que pasa con los flag de estado del computador.
1. Como se indica en el ejercicio procedemos a crear nuestro archivo prog4.ASM con las siguientes instrucciones:
ORG 2000H
MOV AX,9876H
MOV DX,2000H
SUB DX,AX
END
END2. Montamos el disco local c en el DOS Box para la ejecucin del programa
3. Creamos de los ficheros .O .LST con el comando ASM88
4. Creamos del fichero .EJE con el comando LINK88
5. Ejecucin del programa con la instruccin load (L)
Pasos que realiza el programa:
Paso 1: Solicitud de informacin al bloque de memoria, quien enva la informacin BA al decodificador e interpreta la accin a realizar como MOV y de este pasa al secuenciador, luego el ip aumenta en uno, enva por el bus de datos a la memoria guardando el nmero 76 en el registro AX.
Paso 2: Realiza los mismos movimientos que el paso 1, guardando 98 en la posicin AX.
Paso 3: Esta instruccin enva BA al decodificador quien lo representa con el comando MOV y le indica que se mueva el argumento al registro DX.
Paso 4: Esta instruccin realiza los mismos movimientos que el paso n 1, enviando el numero 00 al registro DX.
Paso 5: Realiza los mismos movimientos que el paso anterior enviando esta vez el numero 20 al registro DX.
Paso 6: Esta instruccin realiza lectura de memoria y enva el valor al decodificador para su interpretacin.
Paso 7: En este paso se realiza tambin la lectura de memoria y enva el valor al decodificador, este a su vez toma los valores y los interpreta como la operacin a realizar que en este caso es SUB (resta).
Imagen11 asignacin de valores a AX, DX y operacin sub Paso 8: En este paso se toman los valores guardados en AX y los enva al primer operando de la ALU, luego toma los valores de DX y los enva al segundo operando, se realiza la operacin que en este caso es resta y se enva el resultado a el registro DX, al tiempo que se activan los flags S (Cambio de signo) lo que indica que la operacin realizada dio con signo negativo, O (Desbordamiento) seala desbordamiento aritmtico, C (Acarreo) indica el arrastre del bit de mayor orden , A (Acarreo auxiliar) indica el ajuste en operaciones aritmticas con cantidades BCD.VI. Conclusiones
Se identific el funcionamiento interno de la CPU teniendo en cuenta cada uno de los pasos realizados para obtener el resultado de una operacin aritmtica mediante la utilizacin de este emulador ingresando ciertos comandos que nos permitieron ver paso a paso el recorrido que hace desde el inicio, pasando por cada estacin donde ejecuta parte de la instruccin recibida llegando as a mostrar el resultado de la operacin en mencin.Por otra parte se realiz el anlisis respectivo a cada uno de los ejercicios propuestos teniendo en cuenta el cambio de estado de los flags quienes son los que dejan constancia de algunas condiciones que se dieron en la ltima operacin realizada y que habrn de ser tenidas en cuenta en operaciones posteriores. Por ejemplo, en el caso de hacer una resta, tiene que quedar constancia de si el resultado fue cero, positivo o negativo.referencias
[1] http://sourceforge.net/projects/dosbox/?source=typ_redirect[2] http://www.youtube.com/watch?v=NUYBKr6rfjQ
Arquitectura de computadores
CEAD JAG