ORGANIZACIÓN DEL COMPUTADOR I Práctica 3 − Formatos de instrucciones 1. Identifique los diversos aspectos que diferencian a los conjuntos de instucciones de las CPU´s 2. Enumere y describa algunos modos de direccionamiento más comúnmente soportados por las CPU´s 3. Sea la siguiente palabra de 32 bite representada en hexadecimal 76543210, indique cómo se almacena suponiendo un ordenamiento "little endian" y suponiendo ordenamiento "bug endian" 4. Considerar una computadora hipotética con un conjunto de instrucciones que tiene sólo dos instrucciones de n bits. El primer bit especifica el código de operación, y los demás especifican una de las palabras de memoria. Las dos instrucciones son: SUBS X: restar el contenido de la posición X de un registro acumulador, y guardar el resultado en la posición X y en el acumulador; JUMP X: poner la dirección X en el contador de programa. Una palabra en la memoria principal puede contener o una instrucción o un número binario en notación de complemento a dos. i) ¿Cuánta memoria puede direccionar este procesador? ii) Mostrar cómo se podrían programar las siguientes operaciones: a) Transferencias de datos, de la posición X al acumulador, y del acumulador a la posición X. b) Suma: sumar los contenidos de la posición X en el acumulador. 5. Las siguientes son algunas de las instrucciones que existían en la IAS, incluyendo sus códigos de operación: 0011 = Carga AC desde E/S 1 0111 = Guarda AC en E/S 0101 = Suma. En estos casos, la dirección de 12 bits identifica un dispositivo de E/S en particular (recordemos que la IAS tiene palabras de 20 bits, que los 8 primeros bits son códigos de operación y los siguientes 12 una dirección de memoria, y que las operaciones pasan por un único registro acumulador). ORGANIZACIÓN DEL COMPUTADOR I Práctica 3 − Formatos de instrucciones 1. Identifique los diversos aspectos que diferencian a los conjuntos de instucciones de las CPU´s 2. Enumere y describa algunos modos de direccionamiento más comúnmente soportados por las CPU´s 3. Sea la siguiente palabra de 32 bite representada en hexadecimal 76543210, indique cómo se almacena suponiendo un ordenamiento "little endian" y suponiendo ordenamiento "bug endian" 4. Considerar una computadora hipotética con un conjunto de instrucciones que tiene sólo dos instrucciones de n bits. El primer bit especifica el código de operación, y los demás especifican una de las palabras de memoria. Las dos instrucciones son: SUBS X: restar el contenido de la posición X de un registro acumulador, y guardar el resultado en la posición X y en el acumulador; JUMP X: poner la dirección X en el contador de programa. Una palabra en la memoria principal puede contener o una instrucción o un número binario en notación de complemento a dos. i) ¿Cuánta memoria puede direccionar este procesador? ii) Mostrar cómo se podrían programar las siguientes operaciones: a) Transferencias de datos, de la posición X al acumulador, y del 2 acumulador a la posición X. b) Suma: sumar los contenidos de la posición X en el acumulador. 5. Las siguientes son algunas de las instrucciones que existían en la IAS, incluyendo sus códigos de operación: 0011 = Carga AC desde E/S 0111 = Guarda AC en E/S 0101 = Suma. En estos casos, la dirección de 12 bits identifica un dispositivo de E/S en particular (recordemos que la IAS tiene palabras de 20 bits, que los 8 primeros bits son códigos de operación y los siguientes 12 una dirección de memoria, y que las operaciones pasan por un único registro acumulador). ORGANIZACIÓN DEL COMPUTADOR I Práctica 3 − Formatos de instrucciones 1. Identifique los diversos aspectos que diferencian a los conjuntos de instucciones de las CPU´s 2. Enumere y describa algunos modos de direccionamiento más comúnmente soportados por las CPU´s 3. Sea la siguiente palabra de 32 bite representada en hexadecimal 76543210, indique cómo se almacena suponiendo un ordenamiento "little endian" y suponiendo ordenamiento "bug endian" 4. Considerar una computadora hipotética con un conjunto de instrucciones que tiene sólo dos instrucciones de n bits. El primer bit especifica el código de operación, y los demás especifican una de las palabras de memoria. Las dos instrucciones son: SUBS X: restar el contenido de la posición X de un registro acumulador, y guardar el resultado en la posición X y en el acumulador; JUMP X: poner la dirección X en el contador de programa. 3 Una palabra en la memoria principal puede contener o una instrucción o un número binario en notación de complemento a dos. i) ¿Cuánta memoria puede direccionar este procesador? ii) Mostrar cómo se podrían programar las siguientes operaciones: a) Transferencias de datos, de la posición X al acumulador, y del acumulador a la posición X. b) Suma: sumar los contenidos de la posición X en el acumulador. 5. Las siguientes son algunas de las instrucciones que existían en la IAS, incluyendo sus códigos de operación: 0011 = Carga AC desde E/S 0111 = Guarda AC en E/S 0101 = Suma. En estos casos, la dirección de 12 bits identifica un dispositivo de E/S en particular (recordemos que la IAS tiene palabras de 20 bits, que los 8 primeros bits son códigos de operación y los siguientes 12 una dirección de memoria, y que las operaciones pasan por un único registro acumulador). 0 direcciones 1 dirección 2 direcciones 3 direcciones PUSH M LOAD M AC ð M MOV X,Y (X ð Y) MOV X,Y (X ð Y) POP M STORE M M ð AC ADD X,Y (X ð X+Y) ADD X,Y,Z (X ð Y+Z) ADD push(pop+pop) ADD M AC ð AC + M SUB X,Y (X ð X−Y) SUB X,Y,Z (X ð Y−Z) SUB push(pop−pop) SUB M AC ð AC − M MUL X,Y (X ð X * Y) MUL X,Y,Z (X ð Y * Z) MUL push(pop*pop) MUL M AC ð AC * M DIV X,Y (X ð X / Y) DIV X,Y,Z (X ð Y / Z) DIV push(pop/pop) DIV M AC ð AC / M M es una dirección de memoria de 16 bits. X, Y y Z son direcciones de memoria o registros a elección. a) Compare máquinas con 0, 1 2 y 3 direcciones para hacer la siguiente cuenta: 4 x = (a+b*c)/(d−e*f) b) Asumiendo que las direcciones de memoria son de 16 bits, los códigos de operación de 8 bits y longitudes de instrucción múltiplos de 4 bits: cuántos bits precisa cada máquina para calcular X? 5