Upload
ar
View
213
Download
0
Embed Size (px)
DESCRIPTION
Primer boletin
Citation preview
Boletín nº 1 Fundamentos de Computadores 1/15
Universidad de Sevilla Escuela Superior de Ingenieros
Dpto. de Ingeniería de Sistemas y Automática Camino de los Descubrimientos, s/n
41092 SEVILLA
2º Ingeniería de Telecomunicación Fundamentos de Computadores – Curso 2010/11
Boletín nº 1: Cuestiones de Símplez y Símplez+i3 C1. Se pide lo siguiente:
a) Diferencias entre el modelo estructural del Símplez y el Símplez +i3 b) Diferencias entre el formato de instrucción de Símplez y Símplez +i3 (Nota: sólo se
piden las diferencias en el formato de instrucción, no en el repertorio de instrucciones) Contestar a lo que se pregunta de manera precisa y concisa. C2. Dibujar el esquema de un computador según el modelo de Von Neumann, indicando sus componentes y la función de los mismos. C3. Comentar cual es el ciclo fundamental que ejecuta la unidad de control, para que sirve y que fases conlleva. C4. En la siguiente tabla se muestra el contenido de la memoria de un ordenador Símplez+i3. Dicha memoria contiene la codificación de un programa principal y de una rutina. Suponiendo que comienza la ejecución a partir de la posición de memoria 0, se pide: a) Describir la tarea que realizan conjuntamente el programa y la rutina, como consecuencia
de la ejecución del contenido de memoria. Indicar el resultado de la ejecución y dónde se almacena.
b) ¿Qué técnica se utiliza para pasar los parámetros a la rutina? Justifique la respuesta. c) ¿Qué se echa en falta en la rutina?
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL)
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL) DECIMAL OCTAL DECIMAL OCTAL
0 00 3005 14 16 1015
1 01 0010 15 17 0004
2 02 0004 16 20 7000
3 03 0000 17 21 1103
4 04 0000 18 22 5401
5 05 1001 19 23 2403
6 06 1402 20 24 0403
7 07 0014 21 25 2103
8 10 0415 22 26 0103
9 11 5014 23 27 5401
10 12 0003 24 30 2403
11 13 3021 25 31 0403
12 14 0000 26 32 3103
13 15 0000
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 2/15
C5. Dado el siguiente programa en lenguaje ensamblador para una máquina Símplez+i3: 0 BR /INI 1 DIR_BLOQ_A DATA BLOQ_A (ver Notas) 2 DIR_BLOQ_B DATA BLOQ_B (ver Notas) 3 TAM DATA 30 4 CINCO DATA 5 5 AUX RES 1 6 VAR DATA 1218 (ver Notas) 7 INI LD.X /TAM 8 SUB.X #1 9 BUCLE LD.A [/DIR_BLOQ_A][.X] 10 ST.A /AUX 11 INSTR1 LD.A [/DIR_BLOQ_B][.X] 12 ST.A [/DIR_BLOQ_A][.X]
13 LD.A /AUX 14 ST.A [/DIR_BLOQ_B][.X] 15 SUB.X #1 16 INSTR2 BZ /FIN 17 BR /BUCLE 18 FIN LD.A /VAR 19 ST.A /INSTR1 20 LD.A /INSTR2 21 ADD.A /CINCO 22 ST.A /INSTR2 23 HALT
Se pide:
1. Si el programa se carga en memoria y se ejecuta una vez, explicar conceptualmente qué hace el programa.
2. Sin volver a cargar el programa en memoria, se ejecuta de nuevo (por segunda
vez). Indicar si el programa hace lo mismo que antes. Si no es así, explicar también conceptualmente qué hace ahora.
3. Si se vuelve a ejecutar de nuevo (por tercera vez) sin recargarlo en memoria,
¿variará lo que hace el programa respecto a la segunda ejecución? ¿Y si se ejecutara más veces (cuarta y sucesivas ejecuciones)? Explicar por qué.
NOTAS:
A partir de las etiquetas BLOQ_A y BLOQ_B se tienen almacenados 30 números. 1218 (decimal) = 2302 (octal). Los códigos de operación de las instrucciones de Símplez+i3 son:
0 - ST, 1 – LD, 2 – ADD, 3 – BR, 4 – BZ, 5 – LD#, 6 – SUB#, 7 – HALT
Formato de las instrucciones en Símplez+i3:
CO R J I CD C6. Cuál es el contenido de las posiciones de memoria con etiqueta A, B, y de los registros A y X después de la ejecución del siguiente programa en Símplez +i3.
org 0 br /inicio
A data 3 B res 1 inicio ld.a, #A add.a, /A ld.x, #B st.a, /0[.x] halt
C7. Para el siguiente programa almacenado en la memoria de una máquina Símplez+i3, enumerar los accesos a memoria necesarios para su ejecución a partir de la posición 0, especificando para cada uno de ellos la dirección, el dato, si es de lectura o escritura y para qué se hace.
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 3/15
ORG 0 BR /PPION DATA 2DDAT DATA DATO PPIO LD.A, #7 LD.X, /N ST.A, [/DDAT] LD.A, /VEC[.X] HALT ORG 20DATO RES 1 ORG 30VEC DATA 0 DATA 1 DATA 2 DATA 3 DATA 5 END
C8. Supóngase un ordenador con longitud de palabra de 9 bits, y que decidimos reservar los 3 bits más significativos para el código de operación, con la codificación de la tabla 2.
MP (Tabla 1) Codificación (Tabla 2)
[0] 011111110 000 HALT[1] 111000000 001 CLR[2] 011111111 010 ST[3] 010001010 011 LD[4] 111000000 100 ADD[5] 011111100 101 SUB (Restar del Acumulador)[6] 111000101 110 BR[7] 011001010 111 BZ[8] 010111101[9] 000000000
[10]..................
Las direcciones 60 y 61 corresponden a un periférico de salida y las 62 y 63 a un periférico de entrada (estado y dato respectivamente). a) Dado el contenido de la memoria principal (Tabla 1) en binario, explicar qué hace el
programa suponiendo que comienza a ejecutarse por la dirección 0. b) Si se decide ampliar el programa con más instrucciones, ¿sería necesario cambiar algo en
las demás? ¿Por qué? C9. Dado el siguiente programa codificado en ensamblador de Símplez+i3 y almacenado en un fichero de texto.
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 4/15
org 0 br /inicio mem1 data 21, 17, 34, 56, 78, 24 mem2 res 7 cont res 1 uno data 1 tam data 6 inicio ld.a, /tam st.a, /cont ld.x, #0 bucle ld.a, /cont sub.a, #1 st.a, /cont bz /fin ld.a, /mem1[.x] st.a, /mem2[.x] add.x, /uno br /bucle fin halt
a) Se intenta generar el fichero ejecutable utilizando un ensamblador de una pasada. ¿Lo
haría correctamente o daría algún tipo de error? Razone la respuesta, indicando los errores. En caso de que no funcione el ensamblado proponga una solución.
b) Una vez generado el fichero ejecutable, el programa que se muestra tiene un error en la
codificación. Indique:
- Que operación trata de realizar el programa - Cuál es el error cometido - Proponga una solución.
C10. ¿Qué técnica es necesario utilizar para poder realizar los retornos de subprogramas en Símplez (no Símplez+i3)? Explique brevemente en qué consiste. C11. Explicar el funcionamiento de un ensamblador de dos pasadas, indicando las ventajas que presenta frente al de una pasada. C12. El programa de Símplez+i3 que se muestra a continuación se acaba de cargar en la memoria del computador.
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 5/15
org 0
br /inicio p data dvector resul res 1 inicio ld.a, [/p] ld.x, #1 add.x, /p st.x, /p add.a, [/p] st.a, /resul halt org 100 dvector data 1 data 2 data 3 end
a) ¿Cuál es el contenido de la posición de memoria con etiqueta “resul” después de la
PRIMERA ejecución del programa?
b) El programa se ejecuta una SEGUNDA vez SIN volver a cargarlo en memoria. ¿Cuál es ahora el contenido de la posición con etiqueta “resul”?
c) Si el resultado es distinto, proponga una solución codificada en Símplez+i3 de
forma que el resultado de la primera y segunda ejecución sea el mismo. C13. Responder de forma razonada a las siguientes cuestiones:
a) ¿Por qué en una máquina Símplez+i3 no se puede acceder mediante direccionamiento directo a posiciones de memoria mayores que la 63?
b) ¿Por qué son necesarios los direccionamientos indirecto e indexado en una
máquina Símplez+i3 mientras que en una máquina Símplez no? Justifique ambos casos.
c) Indique las diferencias, si existen, entre la gestión y acceso a los periféricos en una
máquina Símplez+i3 y una máquina Símplez. C14. Indicar el modo de cálculo de la dirección efectiva y la sintaxis del ensamblador Símplez+i3 en los direccionamientos directo, indirecto, indexado e indirecto indexado. Dar el número de accesos a memoria que realiza una instrucción de salto usando esos direccionamientos (descontando la lectura de la instrucción). C15. Se tiene una máquina Símplez con las siguientes modificaciones:
El bus de direcciones es de 11 bits y las instrucciones tienen un tamaño de 13 bits.
Cada palabra de memoria tiene un tamaño de 13 bits.
En el juego de instrucciones ÚNICAMENTE se ha cambiado la instrucción CLR por una nueva instrucción (LD#) de carga en inmediato.
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 6/15
Se pide responder RAZONADAMENTE a las siguientes cuestiones:
a) ¿Cuál es la máxima capacidad de la memoria principal de esta máquina? b) ¿Es necesario modificar el ancho del bus de datos respecto al de la máquina Símplez
no modificada?
c) ¿Cuál será el ancho del campo dedicado al código de operación? ¿Y para el campo de dirección?
d) ¿Cuántos bits debería tener el acumulador?
e) Señalar si es posible la ejecución del siguiente programa:
LD.A /1220 ADD.A /512 ST.A /932
f) Indicar el rango de números que se puede cargar en el acumulador mediante la
instrucción LD#. C16. Se tiene una máquina Símplez+i3 con las siguientes modificaciones:
El bus de direcciones es de 14 bits. El único modo de direccionamiento posible es el directo.
Se pide responder RAZONADAMENTE a las siguientes cuestiones:
a) ¿Cuál es la máxima capacidad de la memoria principal de esta máquina?
b) Indicar cuál tiene que ser el formato de las instrucciones para que se pueda aprovechar dicha capacidad máxima.
c) ¿Cuál sería el ancho de las palabras de memoria?
d) ¿Cuántos bits debería tener el acumulador? ¿y el registro X?
C17. En la siguiente tabla se muestra el contenido de la memoria de un ordenador Símplez. Dicha memoria contiene la codificación de un programa. Suponiendo que la ejecución comienza a partir de la posición de memoria 0, se pide responder RAZONADAMENTE a las siguientes cuestiones:
a) Explicar qué operación hace el programa. Asimismo, hay que indicar cuál es el resultado de la operación y dónde se almacena.
b) ¿Qué técnica se utiliza en el programa? Indicar las direcciones de las instrucciones
mediante las que se pone en práctica dicha técnica.
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 7/15
POSICION MEMORIA CONTENIDO
MEMORIA (OCTAL) POSICION MEMORIA CONTENIDO
MEMORIA (OCTAL) DECIMAL OCTAL DECIMAL OCTAL
0 00 3004 14 16 0012
1 01 0007 15 17 1002
2 02 0000 16 20 6000
3 03 0000 17 21 0002
4 04 5000 18 22 3010
5 05 0003 19 23 7000
6 06 1001 20 24 0003
7 07 0002 21 25 0004
8 10 4023 22 26 0002
9 11 1003 23 27 0001
10 12 2032 24 30 0005
11 13 0003 25 31 0001
12 14 1012 26 32 0004
13 15 6000 C18. En la tabla que se encuentra a continuación, se muestra un programa almacenado en la memoria de un ordenador Símplez+i3.
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL)
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL) DECIMAL OCTAL DECIMAL OCTAL
0 00 3007 11 13 0005
1 01 0001 12 14 5401
2 02 0002 13 15 2412
3 03 0003 14 16 0412
4 04 0000 15 17 1404
5 05 0000 16 20 6401
6 06 0000 17 21 0404
7 07 5003 18 22 4024
8 10 0004 19 23 3012
9 11 5000 20 24 7000
10 12 2001
a) Indique que función realiza el programa. b) Tras una primera ejecución del programa, ¿cuál es el valor de las posiciones 4 y 5 de
memoria? A continuación se realiza una segunda ejecución, sin volver a cargar el programa a memoria, ¿cuáles son los valores en ese caso?
c) Indique que operación se realiza en las posiciones 12-14 (decimal). ¿Cómo se conoce
esa técnica?
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 8/15
C19. En la siguiente tabla se muestra el contenido de la memoria de un ordenador Símplez+i3. Dicha memoria contiene la codificación de un programa y sus datos. Suponiendo que comienza la ejecución a partir de la posición de memoria 0, se pide:
a) Obtener el programa equivalente en lenguaje ensamblador de Símplez+i3. b) Dar el contenido de la posición [1] al final de la ejecución del programa.
c) Suponiendo que el valor inicial de la posición [1] fuera 0004 (octal), ¿qué valor
contendría al final de la ejecución del programa?
d) Describir brevemente la tarea que realiza el programa.
POSICIÓN MEMORIA CONTENIDO PROGRAMA EN
DECIMAL OCTAL MEMORIA (OCTAL) ENSAMBLADOR
[0] [0] 3002
[1] [1] 0005
[2] [2] 1001
[3] [3] 6000
[4] [4] 4012
[5] [5] 6001
[6] [6] 4014
[7] [7] 6001
[8] [10] 4012
[9] [11] 3005
[10] [12] 5001
[11] [13] 3015
[12] [14] 5000
[13] [15] 0001
[14] [16] 7000
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 9/15
C20. Dado el siguiente programa para Símplez+i3:
org 0
br /INI
R data 0
P1 data 1
P2 data 2
UNO data 1
INI ld.a, /P1
ld.x, /P2
B1 sub.a, #1
bz /L1
sub.x, #1
bz /L2
br /B1
L1 sub.x, #1
bz /L3
ld.a, /P1
add.a, /P1
st.a, /P1
ld.x, /R
add.x, /UNO
st.x, /R
ld.x, /P2
br /B1
L2 ld.x, /R
sub.x, #1
st.x, /R
L3 halt
a) Indicar al final del funcionamiento del programa, el valor almacenado en la posición R
cuando en la posición P2 está inicialmente almacenado el numero 2 (tal y como se muestra), el numero 5 y el numero 8.
b) Indicar cual es la operación matemática que realiza el programa si el operando es el
contenido de la posición P2 y el resultado es lo que se guarda en R. C21. Conservando la longitud de palabra de 12 bits, se decide hacer una modificación sobre Símplez consistente en dedicar 4 bits para el código de operación empleando la codificación que se muestra en la Tabla 2.
Tabla 1: Programa (octal)
Tabla 2: Códigos de operación
[0] 0005 [1] 1006 [2] 1007 [3] 0410 [4] 3400 [5] 0006 [6] 0007 [7] 0012 [8] 3674
CO (binario)
mnemónico
0000 LD 0001 ST 0010 ADD 0011 BR 0100 BZ 0101 CLR 0110 DEC 0111 HALT … <otras instruc>
Se pide lo siguiente:
a) Indique el número de instrucciones que podría tener Símplez en este caso. b) Dado el programa que aparece en la Tabla 1, y suponiendo que la ejecución comienza
en la dirección 0, traducir a ensamblador el contenido de la memoria.
c) En caso de que cambie el contenido de alguna posición de memoria, indicar cuál y su nuevo valor.
d) Explicar qué limitación o desventaja tendría la modificación de Símplez que se propone
en este ejercicio.
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 10/15
C22. En la siguiente tabla, se muestra un programa que se ha cargado en la memoria de un ordenador Símplez.
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL)
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL) DECIMAL OCTAL DECIMAL OCTAL
0 00 3007 15 17 3022
1 01 0005 16 20 0004
2 02 0004 17 21 7000
3 03 0002 18 22 3025
4 04 0002 19 23 0001
5 05 3013 20 24 0000
6 06 3020 21 25 6000
7 07 1005 22 26 4034
8 10 0035 23 27 6000
9 11 1001 24 30 4032
10 12 3022 25 31 3025
11 13 0003 26 32 1023
12 14 1006 27 33 3035
13 15 0035 28 34 5000
14 16 1002 29 35 3000 NOTAS:
Los códigos de operación de las instrucciones de Símplez son:
0 - ST, 1 – LD, 2 – ADD, 3 – BR, 4 – BZ, 5 – CLR, 6 – DEC, 7 – HALT Se pide:
a) Indique las posiciones de memoria que cambian al ejecutar el programa y sus nuevos valores al terminar la ejecución.
b) Explique la estructura del programa y describa brevemente qué hace.
c) Suponiendo que se tiene una máquina Símplez modificada con las siguientes
características:
Formato de instrucciones con 3 bits para el código de operación y 6 bits para el campo de dirección.
Mismo juego de instrucciones que Símplez.
Codifique en octal el mismo programa para esta nueva máquina.
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 11/15
C23. Contestar a las siguientes cuestiones: a) ¿Por qué en Simplez+i3 no se pueda acceder directamente a la posición de memoria con
dirección 125? b) Indicar qué se carga en el acumulador tras ejecutar cada una de estas instrucciones (se
puede explicar o usar la notación de “transferencias entre registros”):
b.1) ld.a, /23 b.2) ld.a, [/23] b.3) ld.a, /23[.x] b.4) ld.a, [/23][.x]
C24. En la siguiente tabla, se muestra un programa que se ha cargado en la memoria de un ordenador Símplez.
Se pide:
a) Indique SOLAMENTE las posiciones de memoria que cambian al ejecutar el programa y los valores que van tomando a medida que se ejecuta el programa (desde el valor inicial al valor final).
b) Explique la estructura del programa y describa brevemente qué hace.
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL)
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL) DECIMAL OCTAL DECIMAL OCTAL
0 00 3007 15 17 3022
1 01 0007 16 20 0004
2 02 0002 17 21 7000
3 03 0002 18 22 3025
4 04 0006 19 23 0001
5 05 3013 20 24 0000
6 06 3020 21 25 6000
7 07 1005 22 26 4034
8 10 0035 23 27 6000
9 11 1001 24 30 4032
10 12 3022 25 31 3025
11 13 0003 26 32 5000
12 14 1006 27 33 3035
13 15 0035 28 34 1023
14 16 1002 29 35 7000
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 12/15
c) Suponiendo que se tiene una máquina Símplez modificada con las siguientes características:
a. Formato de instrucciones con 4 bits para el código de operación y 5 bits para el campo de dirección.
b. Tiene un registro adicional (registro X) además del acumulador. c. Juego de instrucciones:
Código Operación Instrucción
0000 ST (acumulador) 0010 LD (acumulador) 0100 ADD (acumulador) 0110 BR 1000 BZ 1010 CLR (acumulador) 1100 DEC (acumulador) 1110 HALT 0001 ST (registro X) 0011 LD (registro X) 0101 ADD (registro X) 0111 No usado 1001 No usado 1011 CLR (registro X) 1101 DEC (registro X) 1111 No usado
Codifique en octal el mismo programa para esta nueva máquina:
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL)
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL) DECIMAL OCTAL DECIMAL OCTAL
0 00 15 17
1 01 16 20
2 02 17 21
3 03 18 22
4 04 19 23
5 05 20 24
6 06 21 25
7 07 22 26
8 10 23 27
9 11 24 30
10 12 25 31
11 13 26 32
12 14 27 33
13 15 28 34
14 16 29 35
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 13/15
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 14/15
C25. En la siguiente tabla se muestra el contenido de la memoria de un ordenador Símplez+i3. Dicha memoria contiene la codificación de un programa. Suponiendo que comienza la ejecución a partir de la posición de memoria 0, se pide:
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL)
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL) DECIMAL OCTAL DECIMAL OCTAL
0 00 3003 11 13 0222
1 01 0003 12 14 6400
2 02 0000 13 15 3004
3 03 1401 14 16 7000
4 04 4016 15 17 0005
5 05 6401 16 20 0003
6 06 1217 17 21 0002
7 07 0002 18 22 0007
8 10 1222 19 23 0004
9 11 0217 20 24 0001
10 12 1002 21 25 2403
a) Una vez finalizada la ejecución del programa, rellenar la siguiente tabla con los valores finales en OCTAL de las posiciones de memoria indicadas:
POSICION MEMORIA CONTENIDO
MEMORIA (OCTAL) DECIMAL OCTAL
11 13
12 14
13 15
14 16
15 17
16 20
17 21
18 22
19 23
20 24
21 25
b) Indicar brevemente la operación que lleva a cabo el programa.
c) Explicar la utilidad de la línea que está en la posición de memoria 12 en decimal.
ARC, DRR, IMA 2009
Boletín nº 1 Fundamentos de Computadores 15/15
C26. En la siguiente tabla, se muestra un programa que se ha cargado en la memoria de un ordenador Símplez+i3.
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL)
POSICION MEMORIA CONTENIDO MEMORIA (OCTAL) DECIMAL OCTAL DECIMAL OCTAL
0 00 3006 13 15 4014
1 01 0004 14 16 1005
2 02 0060 15 17 0104
3 03 7774 16 20 6400
4 04 7775 17 21 3007
5 05 0000 18 22 7000
6 06 1401 19 23 0005
7 07 4022 20 24 0003
8 10 6401 21 25 0002
9 11 1223 22 26 0007
10 12 2002 23 27 0004
11 13 0005 24 30 0001
12 14 1103 25 31 0001
Se pide:
a) Indique SOLAMENTE las posiciones de la memoria principal que cambian al ejecutar el programa y los valores que van tomando en octal a medida que se ejecuta el programa (desde el valor inicial al valor final).
Dir MP Valor 1 Valor 2 Valor 3 Valor 4 Valor 5 Valor 6 Valor 7 Valor 8 Valor 9
b) Explique la estructura del programa y describa brevemente qué hace.
c) Indique qué técnica se ha implementado mediante las instrucciones de las direcciones 12 y 13 en decimal.