PRACTICA 2 ARQUITECTURA

8
UNAD. Valencia Gonzalo, Martínez Yenny, Practicas 1 y 3 Arquitectura de Computadores . ResumenDesarrollo de la práctica 2 de laboratorio propuesta en el aula virtual por el director del curso, realizando ilustraciones de cada uno de los pasos realizados. Índice de Términos—CPU, Secuenciador, Memoria, decodificador, bus de datos, msx88. I. INTRODUCCIÓN La elaboración de esta práctica tiene como objetivo conocer e indagar acerca del funcionamiento de la cpu, mediante la utilización de un simulador llamado MSX88 que nos mostrará de manera gráfica como se adelantan los procesos internos de la cpu y la cantidad de pasos que se realizan para obtener el resultado de una operación solicitada a la máquina a fin de lograr una mayor comprensión de las funciones y componentes que intervienen en los procesos de la cpu. Esta práctica se elaborará mediante la utilización 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 práctica 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 raíz 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 END Con el archivo ya listo lo guardamos con la extensión .ASM en la carpeta msx88 alojada en C. Damos inicio a las instrucciones solicitadas en la práctica ejecutando el DOS Box, digitamos el comando mount c: c:\ Arquitectura de computadores CEAD JAG PRACTICAS 2 ARQUITECTURA COMPUTADORES Valencia Gonzalo, Martínez Yenny. [email protected] [email protected] Tutor, Manuel Sierra Rodríguez 1

description

PRACTICA 2 ARQUITECTURA

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