Trabajo Práctico Nro. 1 - Primer Cuatrimestre 2008 Organización del Computador 1 Fecha de entrega: martes 29 de abril de 2008 Multimedia Logic Los ejercicios de esta sección deben ser resueltos utilizando el programa Multimedia Logic, que puede descargargarse desde la página de la materia. El informe debe incluir los gráficos generados por dicho programa. Ejercicio 1 Construir un circuito que realice la suma de dos números de 4 bits en notación complemento a 2. Ejercicio 2 Utilizando el sumador del ejercicio anterior, construir un circuito que determine si la secuencia de bits, producto de la suma de dos números de 4 bit en notación complemento a 2, es capicúa. Ejercicio 3 Construir un circuito contador de 3 bits que realice la siguiente secuencia: 000, 001, 000, 011, 000, 101, 000 y 111. Se cuenta con el componente flip-flop JK del simulador. Simulador ORGA1 Los ejercicios de esta sección deben ser resueltos utilizando el simulador de la máquina Orga1, que puede descargargarse desde la página de la materia. Ejercicio 4 Dado el siguiente programa en Orga I, rutina: CMP R0, R1 JL R0mR1 MOV R3, R0 MOV R0, R1 MOV R1, R3 R0mR1: CMP R1, R2 JL fin CMP R2, R0 JL R2mR0 MOV R3, R2 MOV R2, R1 MOV R1, R3 JMP fin R2mR0: MOV R3, R0 MOV R0, R2 MOV R2, R1 MOV R1, R3 fin: RET main: MOV R0, 0x0942 MOV R1, 0xF442 MOV R2, 0x0111 CALL rutina a) Realizar el seguimiento del programa detallando instrucciones ejecutadas, cambios en registros, banderas, memoria, PC y SP. 1 b) ¿Cuál será el valor de los registros R0, R1 y R2; si antes de llamar a rutina, R1 vale 0x8000. c) ¿Qué tarea realiza la rutina? d) Dar la posición de memoria y valor del desplazamiento de todas las instrucciones de salto. Ejercicio 5 Sea un procesador Orga I, se desea:1 a) Programar una rutina que dados valores en los registros R0, R1 y R2, obtiene en R0 el mayor de todos, en R1 el menor de todos y en R2 la suma del mayor con el menor. b) Modificar la rutina del ejercicio 4. para que no altere ningún registro distinto de R0, R1 y R2. Ejercicio 6 Para cada una de las siguientes instrucciones, indicar que cambios producen y como se codifican. a) MOV [[0x0103]], [0x0104] b) ADD [0x0101], [0x0102] c) ADD [R0+0x0001], [R2] d) CMP 0xFFFF, [0x0101] e) SUB [0x0104], R0 f) NEG 0x0011 g) NOT [[0x0102]] h) NOT 0xFFFF i) CALL 0xFF11 Suponiendo que: R0 = 0x0100 R1 = 0x0101 R2 = 0x0102 [0x0100] = 0x0102 [0x0101] = 0x0101 [0x0102] = 0x0102 [0x0103] = 0x0101 [0x0104] = 0x0103 [0x0105] = 0x0104 Ejercicio 7 Sea un procesador Orga I, se desea realizar las siguientes rutinas sobre un vector de n elementos, donde el registro R0 apunta al primer elemento del vector y el registro R1 indica la cantidad de elementos del mismo. a) Programar una rutina que ordene el vector. b) Programar una rutina que obtenga la moda. 1 Ayuda: Utilizar la rutina del ejercicio anterior. 2