Logo Studenta

Fundamentos de Computadores_ Ingeniería Informática UPSAM

Esta es una vista previa del archivo. Inicie sesión para ver el archivo original

FC - Junio 2007 - Problemas - Soluciones.pdf
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 1 (2.5 puntos) 
 
Sea A el registro acumulador del Indalo 3.0. Se pretende escribir un programa que active el flag de 
cero si se cumplen simultáneamente las siguientes condiciones sobre los bits de dicho registro: 
 
54307 aa ,0a ,aa === 
 
Se pide: 
 
a) Escribir dicho programa en lenguaje simbólico. 
(1 punto) 
 
b) Escribir en lenguaje ensamblador del Indalo 3.0 el programa del apartado anterior. 
(1.5 puntos) 
 
 
 
Pág. 1 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 1: Solución (1) 
 
Apartado a) 
 
L. SIMBÓLICO ACCIÓN 
A → B A = B 
B ∩ 98H→ B B = a700a4a3000 ; A no cambia 
A>r>→ A A = a0a7a6a5a4a3a2a1 
A ∩ 90H→ A A = a000a50000 
A B → A ⊕ A = (a7 ⊕ a0) 0 0 (a5 ⊕ a4) a3 0 0 0 
A 10H→ A ⊕ A = (a7 ⊕ a0) 0 0 )a(a 45 ⊕ a3 0 0 0 
 
 
 
 
 
 
Apartado b) 
Para escribir el programa anterior en lenguaje ensamblador de Indalo 3.0, hay que tener en 
cuenta que las instrucciones aritméticas y lógicas tienen como único destino el acumulador. Así: 
MOV B, A 
AND A, 98H 
MOV C, A 
MOV A, B 
ROR A 
AND A, 90H 
XOR A, C 
XOR A, 10H 
 
 
 
Pág. 2 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 2 (2.5 puntos) 
 
Para el Indalo 3.0 se ha desarrollado el siguiente programa: 
 
ORG 1000H 
MOV A, (2000H) 
MOV B, (2001H) 
MOV C, 3 
CMP A, B 
JNC BUCLE2 
BUCLE1: SHR A 
 DEC C 
 JNZ BUCLE1 
 JMP FIN 
BUCLE2: SHL A 
 JNO BUCLE2 
FIN: HLT 
 
 
a) Ensamblar el programa indicando en qué dirección de memoria comienza cada instrucción 
del mismo (el resultado debe figurar en la tabla adjunta). 
 
INSTRUCCIÓN POSICIÓN DE MEMORIA 
INSTRUCCIÓN 
ENSAMBLADA 
MOV A, (2000H) 
MOV B, (2001H) 
MOV C, 3 
CMP A, B 
JNC BUCLE2 
SHR A 
DEC C 
JNZ BUCLE1 
JMP FIN 
SHL A 
JNO BUCLE2 
HLT 
(1.25 puntos) 
 
b) Suponiendo que (2000H) = 3FH y (2001H) = 0E2H, indicar de forma razonada cuál es el 
tiempo que tarda en ser ejecutado el programa anterior en una CPU que funcione a 1 GHz. 
(1.25 puntos) 
Pág. 3 
 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 2: Solución (1) 
 
 
Apartado a) 
INSTRUCCIÓN POSICIÓN DE MEMORIA 
INSTRUCCIÓN 
ENSAMBLADA 
MOV A, (2000H) 1000H 68H, 00H, 20H 
MOV B, (2001H) 1003H 70H, 01H, 20H 
MOV C, 3 1006H 7CH, 03H 
CMP A, B 1008H 82H 
JNC BUCLE2 1009H 13H, 07H 
SHR A 100BH = BUCLE1 E8H 
DEC C 100CH A3H 
JNZ BUCLE1 100DH 17H, 0FCH 
JMP FIN 100FH 12H, 15H, 10H 
SHL A 1012H = BUCLE2 E0H 
JNO BUCLE2 1013H 14H, 0FDH 
HLT 1015H = FIN 0EH 
 
 
 
 
Apartado b) 
 Instrucción Iterac. 1 Iterac. 2 Iterac. 3 Total 
 MOV A,(2000H) 18 18 
 MOV B,(2001H) 18 18 
 MOV C,3 10 10 
 CMP A,B 7 7 
 JNC BUCLE2 7 7 
BUCLE1: SHR A 7 7 7 21 
 DEC C 7 7 7 21 
 JNZ BUCLE1 12 12 7 31 
 JMP FIN 15 15 
BUCLE2 : SHL A 
 JNO BUCLE2 
FIN : HLT 3 3 
 
TOTAL ...................................................................................... 151 
Pág. 4 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 2: Solución (y 2) 
 
 
 
 
 
 
 
 
 
 
 
 
Téngase en cuenta que el resultado de la comparación determinará el camino a tomar 
dentro del programa. Así, si A > B, no se activa Fc y se salta a BUCLE2. En caso contrario, se sigue 
por BUCLE1. En ambos casos, la salida del bucle correspondiente conlleva la terminación del 
programa. 
Puesto que A=(2000H)=3FH y B=(2001H)=0E2H, A<B y el programa entra en BUCLE1, 
realizando tantas iteraciones dentro del mismo como indique el contador C, esto es 3 (la salida de 
este bucle se produce si al decrementar C se produce un resultado nulo que active Fz). En cada 
una de ellas, se divide entre dos el contenido de A. 
 
El tiempo de ejecución del programa es, por lo tanto: 
TEJECUCIÓN = Nº ciclos x TCICLO = 151 x (1 GHz )-1 = 151 x 10-9 s = 151 ns 
Pág. 5 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 3 (2.5 puntos) 
 
Sea el siguiente fragmento de programa: 
 
 MOV C, 52H 
 IN A, C 
 MOV B, A 
 MOV C, 53H 
 IN A, C 
 MOV C, A 
 XOR A, A 
BUCLE: ADD A, C 
 DEC B 
 JNZ BUCLE 
 MOV C, 54H 
 OUT C, A 
 HLT 
 
Sabiendo que, antes de ejecutarse, el contenido de los puertos 52H, 53H y 54H era: 
 
(52H) = 08H , (53H) = 12H , (54H) = 0FFH 
 
se pide: 
 
a) Indicar el valor de los registros A, B y C, así como el contenido del puerto 54H cuando finaliza 
el fragmento de programa. 
(0.75 puntos) 
b) ¿Qué hace el fragmento de programa? Explicar su funcionamiento en menos de seis líneas. 
Razonar la respuesta. 
(0.75 puntos) 
c) Realizar una tabla en la que aparezcan las instrucciones y los ciclos de máquina que se precisan 
para ejecutar cada una de ellas, así como el número de veces que se ejecuta cada instrucción. 
(1 punto) 
 
Pág. 6 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 3: Solución (1) 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Apartado a) 
En este programa intervienen tres puertos. De ellos, dos son de entrada (IN) y sus 
direcciones son 52H y 53H, y uno de salida (OUT), que tiene por dirección 54H. 
Comentamos brevemente lo que hace cada línea del fragmento del programa: 
 MOV C, 52H ;C = 52H 
IN A, C ;El contenido del puerto 52 H pasa a A (A = 08H) 
MOV B, A ;B = 08H 
MOV C, 53H ;C = 53H 
IN A, C ;El contenido del puerto 53H pasa a A (A = 12H) 
MOV C, A ;C = 12H 
XOR A, A ;A = 0 
BUCLE: ADD A, C ;(Bucle de multiplicación: sumas sucesivas) 
 DEC B ;(Este bucle se ejecuta 8 veces y acaba con B = 0) 
 JNZ BUCLE ;(Este bucle hace A = 12H * 08H = 90H) 
 MOV C, 54H ;C = 54H 
 OUT C, A ;Escribe A = 90H en el puerto 54H 
 HLT ;Fin 
En consecuencia, al finalizar: A= 90H, B = 0H, C = 54H y (54H) = 90H 
Apartado b) 
Para responder a este apartado, tengamos en cuenta la descripción por líneas de programa 
que hicimos en el apartado previo. 
El programa lee los valores de los puertos 52H y 53H. Los multiplica y el resultado lo 
escribe en el puerto 54H. En nuestro caso, los contenidos
de 52H y 53H son 08 y 12H (en decimal, 
18), respectivamente, que multiplicados da como resultado 90H (en decimal, 90H es 144, que es, 
obviamente, el producto de 8 por 18). Este valor se escribe en el puerto 54H. 
Pág. 7 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 3: Solución (y 2) 
 
Apartado c) 
 
Instrucción Ciclos de máquina Nº de veces que se ejecuta 
MOV C, 52H F, Falu 1 
IN A, C F, IP 1 
MOV B, A F 1 
MOV C, 53H F, Falu 1 
IN A, C F, IP 1 
MOV C, A F 1 
XOR A, A F 1 
ADD A, C Fflag 8 
DEC B F 8 
JNZ B UCLE Cuando salta: F, F 
Cuando no salta: F 
7 veces salta y 
1 vez no salta 
MOV C, 54H F, Falu 1 
OUT C, A F, OP 1 
HLT Fnoinc 1 
 
 
 
 
 
Pág. 8 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 1 (2.5 puntos) 
 
Dado el siguiente fragmento de programa: 
 
MOV B,A 
ROR A 
AND A,22H 
XOR A,B 
AND A,0A3H 
XOR A,0A1H 
JZ DIR_SALTO
 
se pide: 
 
a) Especificar todas las condiciones que deben cumplir los bits del registro A y/o del registro B 
para que se produzca el salto a la dirección DIR_SALTO. 
(1 punto) 
b) En el caso de que el valor inicial de A sea 0B9H, ¿se producirá el salto a la dirección 
DIR_SALTO?. Especificar las condiciones que se cumplen o no. 
(0.3 puntos) 
c) Contestar al apartado b) suponiendo que el valor inicial de A es 0CDH. 
(0.3 puntos) 
d) Contestar al apartado b) suponiendo que el valor inicial de A es 47H. 
(0.3 puntos) 
e) ¿Cuántos bytes ocupará este fragmento en código máquina? (no se pide ensamblarlo, sólo 
calcular su número de bytes). 
(0.6 puntos) 
 
NOTAS: 
 
− Denominar los bits del registro A como y los del registro B como 
 
01234567 aaaaaaaa
01234567 bbbbbbbb .
− Para contestar el apartado a) se sugiere el desarrollo del programa mediante lenguaje 
simbólico, analizando los valores binarios de A y B. 
 
 
 
Pág. 1 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 1: Solución (1) 
 
 
Apartado a) 
Lenguaje 
Simbólico 
Lenguaje 
Ensamblador Contenido de A Contenido de B 
BA → MOV B, A 01234567 aaaaaaaa 01234567 aaaaaaaa
ArA >→> ROR A 12345670 aaaaaaaa No varía 
AH22A →∩ AND A, 22H 0a000a00 26 No varía 
ABA →⊕ XOR A, B 0212346567 a)aa(aaa)aa(aa ⊕⊕
 
No varía 
AH3A0A →∩ AND A, 0A3H 021657 a)aa(000)aa(0a ⊕⊕ No varía 
AH1A0A →⊕ XOR A, 0A1H 
021657 a)aa(000)aa(0a ⊕⊕ No varía 
Salto condicional JZ DIR_SALTO No varía No varía 
 
 
 
 
 
 
 
 
 A la vista de lo anterior, los bits iniciales del registro B no son relevantes; las condiciones 
que deben cumplirse para que Fz se active, y se produzca el salto a la dirección DIR_SALTO, son 
(deben cumplirse la tres simultáneamente): 
Apartado b) 
Si A = 0B9H, su valor b
a7
1
 
Se cumplen todas las
produce el salto a la direcció
 
 
 
 
1aa 07 == 56 aa ≠ 12 aa = ; ; 
 
 
inario es : 01234567 aaaaaaaa
a6 a5 a4 a3 a2 a1 a0 
 0 1 1 1 0 0 1 
 condiciones señaladas en el apartado anterior y, por tanto, se 
n DIR_SALTO. 
Pág. 2 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 1: Solución (y 2) 
 
Apartado c) 
 
 
 
Si A = 0CDH, su valor binario es : 01234567 aaaaaaaa
a7 a6 a5 a4 a3 a2 a1 a0 
1 1 0 0 1 1 0 1 
 
 
 
 
No se cumple la condición y, aunque se cumplen las otras dos, NO se produce el 
salto a la dirección DIR_SALTO. 
12 aa =
 
 
Apartado d) 
 
Si A = 47H, su valor binario es : 01234567 aaaaaaaa
a7 a6 a5 a4 a3 a2 a1 a0 
0 1 0 0 0 1 1 1 
 
Se cumplen todas las condiciones, salvo la condición 1aa 07 == 
 
 
 
 
 
y, por tanto, NO se 
produce el salto a la dirección DIR_SALTO. 
Apartado e) 
Tamaño del fragmento de programa en código máquina: 
Instrucción Tamaño (bytes) 
MOV B, A 1 
ROR A 1 
AND A, 22H 2 
XOR A, B 1 
AND A, 0A3H 2 
XOR A, 0A1H 2 
JZ DIR_SALTO 2 
TOTAL 11
 
 
 
Pág. 3 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 2 (2.5 puntos) 
 
Para el Indalo 3.0 se ha desarrollado el siguiente programa en código máquina: 
 
POSICIÓN DE 
MEMORIA 
INSTRUCCIÓN 
ENSAMBLADA 
1000H 68H, 00H, 20H 
1003H 70H, 01H, 20H 
1006H 7CH, 03H 
1008H 82H 
1009H 13H, 07H 
100BH E8H 
100CH A3H 
100DH 17H, 0FCH 
100FH 12H, 15H, 10H 
1012H E0H 
1013H 14H, 0FDH 
1015H 0EH 
 
a) Desensamblar el programa. 
(1.25 puntos) 
 
b) Suponiendo que (2000H) = 1FH y (2001H) = 1DH, indicar de forma razonada cuál es el 
tiempo que tarda en ser ejecutado el programa anterior en una CPU que funcione a 1 GHz. 
(1.25 puntos) 
 
 
Pág. 4 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 2: Solución (1) 
 
 
Apartado a) 
POSICIÓN DE 
MEMORIA 
INSTRUCCIÓN 
ENSAMBLADA INSTRUCCIÓN 
1000H 68H, 00H, 20H MOV A, (2000H) 
1003H 70H, 01H, 20H MOV B, (2001H) 
1006H 7CH, 03H MOV C, 3 
1008H 82H CMP A, B 
1009H 13H, 07H JNC 1012H 
100BH E8H SHR A 
100CH A3H DEC C 
100DH 17H, 0FCH JNZ 100BH 
100FH 12H, 15H, 10H JMP 1015H 
1012H E0H SHL A 
1013H 14H, 0FDH JNO 1012H 
1015H 0EH HLT 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Apartado b) 
 
 
 Instrucción Iterac. 1 Iterac. 2 Iterac. 3 Total
 MOV A,(2000H) 18 18 
 MOV B,(2001H) 18 18 
 MOV C,3 10 10 
 CMP A,B 7 7 
 JNC 1012H 12 12 
 SHR A 
 DEC C 
 JNZ 100BH 
 JMP 1015H 
 SHL A 7 7 7 21 
 JNO 1012H 12 12 7 31 
 HLT 3 3 
TOTAL ...................................................................................... 120
 
 
 
Pág. 5 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 2: Solución (y 2) 
 
 
 
 
 
 
Téngase en cuenta que el resultado de la comparación determinará el camino a tomar 
dentro del programa. Así, si A > B, no se activa Fc y se salta al BUCLE 2 (1012H). En caso 
contrario, se sigue por el BUCLE 1 (100BH). En ambos casos, la salida del bucle correspondiente 
conlleva la terminación del programa. 
Puesto que A=(2000H)=1FH y B=(2001H)=1DH, A>B y el programa entra en el BUCLE 2. 
Dentro del mismo, se multiplica por dos el contenido de A. La condición de salida de este bucle 
consiste en que el bit que
se pierda por la izquierda al desplazar el contenido de A sea diferente al 
que se queda como bit de signo del resultado (activación de Fo). Esto último sucede en la tercera 
iteración. 
El tiempo de ejecución del programa es, por lo tanto: 
TEJECUCIÓN = Nº ciclos x TCICLO = 120 x (1 GHz )-1 = 120 x 10-9 s = 120 ns 
Pág. 6 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 3 (2.5 puntos) 
 
 
En un microprocesador Indalo 3.0 se está ejecutando la siguiente secuencia de instrucciones: 
 
ORG 1000H 
MOV A,0B5H 
ADD A,9CH 
JC 1054H 
RET 
 
Antes de iniciar el programa se tienen los siguientes contenidos en algunos registros y memoria: 
 
SP = 0FFF5H PC = 1000H 
 
POSICIÓN CONTENIDO
0006H 
0007H 
0008H 
0009H 
000AH 
000BH 
000CH 
000DH 
000EH 
000FH 
00H 
23H 
0A2H 
08H 
21H 
32H 
19H 
00H 
00H 
0FFH 
 
Se pide: 
 
a) Valor de los flags al terminar de ejecutar la instrucción ADD A,9CH. ¿Que significado 
tienen en caso de trabajar con enteros sin signo y en el caso de enteros con signo? 
(0.5 puntos) 
b) Durante la ejecución de la instrucción JC 1054H se produce una interrupción hardware de 
vector 5. Obtener el contenido de la pila, así como los valores de PC y SP justo antes de 
empezar a ejecutar la rutina de atención a la interrupción. 
(1 punto) 
c) Repetir el apartado anterior, pero suponiendo que el valor que se carga en el acumulador es 
4, es decir, MOV A,4. 
(1 punto) 
 
 
Pág. 7 
 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 3: Solución (1) 
 
 
 
 
 
 
 
 
 
 
 
 
 
Apartado a) 
Al ejecutar la instrucción ADD A,9CH el valor de A es 0B5H, por lo tanto, la suma será: 
 
0B5H + 9CH = 51H 
quedando los flags: 
Fc = 1, Fp = 0, Fo = 1, Fs = 0 y Fz = 0 
Fc = 1 Indica desbordamiento en enteros sin signo 
Fo = 1 Indica desbordamiento en enteros con signo 
Apartado b) 
 Como hemos visto en el apartado anterior, el flag Fc se activa, por lo tanto, se cumple la 
condición de salto. 
 Cuando se produce la interrupción, el microprocesador guarda la dirección de retorno en la 
pila. Puesto que se cumple la condición de salto, la dirección que se guarda es la de salto, esto es 
1054H, con lo que la pila queda como sigue: 
POSICIÓN CONTENIDO 
0FFF3H 54H 
0FFF4H 10H 
 
 
 
 
 
 
 
En cuanto a los registros, SP = 0FFF3H y el contenido del PC será la dirección donde 
empieza la rutina de atención a la interrupción. Dicha dirección la obtenemos de la tabla de 
contenidos de memoria del enunciado: 
V*2 = 0AH → (000AH) = 21H 
V*2 + 1 = 0BH → (000BH) = 32H 
Por lo tanto: 
 
PC = 3221H 
Pág. 8 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
PROBLEMA 3: Solución (y 2) 
 
 
l
 
Apartado c) 
 Con el nuevo valor de A = 4 no se activa el flag de carry, por lo tanto, no se cump e la 
condición de salto y la dirección de retorno es la de la posición que contiene la instrucción RET, 
que es 1006H. 
POSICIÓN CONTENIDO 
0FFF3H 06H 
0FFF4H 10H 
 
Los valores de los registros SP y el PC no cambian con respecto al apartado anterior. 
 
 
 
 
Pág. 9 
FC - Junio 2007 - Teor?a - Soluciones.pdf
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Mañana) 
 CONVOCATORIA: 18 de Junio de 2007 
 
 
TEST (2.5 puntos) 
 
En las siguientes preguntas de tipo test, sólo existe una respuesta correcta. Cada pregunta tiene un valor de 0,25 
puntos. Cada respuesta incorrecta descuenta 0,1 puntos. La pregunta que deje en blanco no sumará ni restará puntos. 
Notas: · Se debe poner una X sobre la letra de la tabla "SOLUCIÓN" (que encontrará en la última hoja) 
correspondiente a la respuesta correcta. 
 · La tabla "CALIFICACIÓN" no deberá utilizarla, es para su posterior calificación. 
 · No se tendrán en cuenta las respuestas que no se encuentren en dicha tabla "SOLUCIÓN" 
 
1) En la ejecución de la instrucción OUT C,A, ¿qué microórden no participa?: 
a) sala. 
b) salc. 
c) io. 
d) **cka. 
 
2) Después de una instrucción CMP A,B, los flags han quedado de la siguiente forma: Fc = 0, Fs =1, 
Fo =1 y Fz = 0. En estas condiciones, podemos decir: 
a) En enteros sin signo se ha producido desbordamiento y A > B . 
b) En enteros sin signo no ha habido desbordamiento y A < B. 
c) **En enteros con signo se ha producido desbordamiento y A > B. 
d) En enteros con signo se ha producido desbordamiento y A< B. 
 
3) Para ejecutar la instrucción JMP BC, ¿qué secuencia de operaciones básicas se necesita?: 
a) **Fnoinc, It16. 
b) F, F, Fnoinc, It16. 
c) F, F, F, It16. 
d) F, It16. 
 
4) De la instrucción MOV A,(X+2) podemos decir que: 
a) Guarda el acumulador en la posición de memoria indicada por (X+2). 
b) El valor de X se ve modificado por la suma (X+2). 
c) **Carga en el acumulador el dato que está en la posición de memoria apuntada por (X+2). 
d) Ninguna de las anteriores respuestas es cierta. 
 
5) Dado el siguiente fragmento de código, almacenado a partir de la posición de memoria 2000H, 
 
AND A, A 
JNC 2100H 
 
¿cuál es el valor del PC después de ejecutar la instrucción de salto condicional?: 
a) 2004H. 
b) 2003H. 
c) **2100H. 
d) 2002H. 
 
Pág. 1 
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Mañana) 
 CONVOCATORIA: 18 de Junio de 2007 
 
 
TEST (continuación) 
 
6) Después de ejecutar la instrucción XOR A, A... 
a) El registro A vale 0, y los flags de carry y de overflow se activan. 
b) A no modifica su valor, y el flag de signo vale 1 o cero. 
c) El flag de carry se pone a uno y el flag de cero se activa. 
d) **A vale 0, y los flags de carry y de overflow se desactivan. 
 
7) En la CPU INDALO 3.0 ... 
a) **... la pila crece hacia posiciones de memoria decrecientes. 
b) ... el final de pila está controlado por el contenido del registro X. 
c) ... la pila se direcciona mediante direccionamiento absoluto. 
d) ... la pila crece hacia posiciones de memoria crecientes 
 
8) El contador de programa del Indalo 3.0 es un registro que: 
a) Se incrementa siempre al final de cada ciclo de fetch. 
b) **Guarda la dirección de la siguiente instrucción a ejecutar al finalizar la ejecución de la instrucción 
en curso. 
c) Se puede modificar con la instrucción MOV PC, NUEVO_VALOR. 
d) Puede decrementarse con la instrucción DEC. 
 
9) En el Indalo 3.0: 
a) **La interrupción hardware presenta un ciclo de máquina específico. 
b) Sólo se pueden ejecutar interrupciones hardware. 
c) La microórden inta la genera el microprocesador para rechazar la interrupción. 
d) Existe una pila en la que se almacenan los avisos de interrupción según van apareciendo. 
 
10) Siempre que se accede a memoria: 
a) Se ejecuta una operación R. 
b) Se va a ejecutar un acceso DMA. 
c) Se ejecuta un ciclo de Fetch. 
d) **Ninguna de las anteriores respuestas es correcta. 
 
 
 
 
 
Pág. 2 
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
TEST: Solución (y 1) 
 
 
SOLUCIÓN
1 2 3 4 5 6 7 8 9 10 
a a a a a a a a a a 
b b b b b b b b b b 
c c c c c c c c c c 
d d d d d d d d d d 
 
 
• La respuesta correcta se indicará tachando la letra correspondiente con una X. 
• Para anular una respuesta dada, se rodeará con una circunferencia ⊗, de modo que se entenderá: 
 
 Respuesta dada por el alumno 
 Respuesta anulada por el alumno 
 
 
CALIFICACIÓN 
 
Correctas x 0,25 = 
Erróneas x (- 0,1) = - 
 Total 
 
Pág. 3 
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Tarde) 
 CONVOCATORIA: 18 de Junio de 2007 
 
 
TEST (2.5 puntos) 
 
En las siguientes preguntas de tipo test, sólo existe una respuesta correcta. Cada pregunta tiene un valor de 0,25 
puntos. Cada respuesta incorrecta descuenta 0,1 puntos. La pregunta que deje en blanco no sumará ni restará puntos. 
Notas: · Se debe poner una X sobre la letra de la tabla "SOLUCIÓN" (que encontrará en la última hoja) 
correspondiente a la respuesta correcta. 
 · La tabla "CALIFICACIÓN" no deberá utilizarla, es para su posterior calificación. 
 · No se tendrán en cuenta las respuestas que no se encuentren en dicha tabla "SOLUCIÓN" 
 
1) En la ejecución de la instrucción IN A,C, ¿qué microórden no participa?: 
a) **sala. 
b) salc. 
c) io. 
d) cka. 
 
2) Del Indalo 3.0 podemos decir que: 
a) Los puertos se direccionan con los dieciséis bits del registro BC. 
b) En la instrucción IN A,C el destino es el puerto. 
c) **La interrupción hardware genera un tipo exclusivo de ciclo de máquina. 
d) Las instrucciones CALL addr y JMP addr son exactamente iguales. 
 
3) Para ejecutar la instrucción JMP addr, ¿qué secuencia de operaciones básicas se necesita?: 
a) Fnoinc, It16. 
b) **F, F, Fnoinc, It16. 
c) F, F, F, It16. 
d) F, It16. 
 
4) Durante una transferencia de DMA: 
a) Si se produce una interrupción hardware, será atendida inmediatamente. 
b) La CPU puede interrumpir la transferencia según el valor de los flags. 
c) La CPU mantiene activada la señal HOLD hasta que finalice la transferencia. 
d) **El control de los buses no lo tiene la CPU. 
 
5) Dado el siguiente fragmento de código, almacenado a partir de la posición de memoria 1000H, 
 
XOR A, A 
JO 1100H 
 
¿cuál es el valor del PC después de ejecutar la instrucción de salto condicional?: 
a) **1003H. 
b) 1100H. 
c) 1004H. 
d) 1002H. 
 
Pág. 1 
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Tarde) 
 CONVOCATORIA: 18 de Junio de 2007 
 
 
TEST (continuación) 
 
6) La ejecución de la instrucción AND A, A ... 
a) Pone los 8 bits de A, y el flag Fz a cero. 
b) **Deja A con el mismo valor que tenía, y los flags de carry y de overflow a 0. 
c) Pone el valor 0FFH en A, y los flags de carry y de overflow a 0. 
d) Pone en A el valor doble del que había en un principio. 
 
7) Las instrucciones que introducen datos en la pila dejan, al terminar, el puntero de pila ... 
a) ... incrementado en dos unidades. 
b) ... incrementado en una unidad (a diferencia de las instrucciones que guardan direcciones en la pila, 
que lo dejan incrementado en dos unidades). 
c) ... decrementado en una unidad. 
d) **... decrementado en dos unidades. 
 
8) Los ciclos de Fetch del Indalo 3.0: 
a) Pueden ser de lectura y de escritura. 
b) Son lecturas en memoria y lecturas en periféricos 
c) **Son lecturas de instrucciones ensambladas en memoria. 
d) No son utilizados por algunas instrucciones. 
 
9) En una instrucción MOV del Indalo 3.0: 
a) Es posible realizar una transferencia de 8 bits a través de ABUS. 
b) Sus operandos nunca pueden ser dos registros. 
c) **Uno de sus operandos siempre es un registro. 
d) El registro destino puede ser el PC. 
 
10) La instrucción INT 03FH: 
a) Es una interrupción hardware. 
b) Condiciona su ejecución al estado de la máscara de interrupción. 
c) **Efectúa una lectura en las direcciones 0007EH y 0007FH. 
d) Equivale a un salto incondicional. 
 
 
Pág. 2 
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 18 de Junio de 2007 
 
 
TEST: Solución (y 1) 
 
 
SOLUCIÓN 
 
1 2 3 4 5 6 7 8 9 10 
a a a a a a a a a a 
b b b b b b b b b b 
c c c c c c c c c c 
d d d d d d d d d d 
 
 
• La respuesta correcta se indicará tachando la letra correspondiente con una X. 
• Para anular una respuesta dada, se rodeará con una circunferencia ⊗, de modo que se entenderá: 
 
 Respuesta dada por el alumno 
 Respuesta anulada por el alumno 
 
 
CALIFICACIÓN 
 
Correctas x 0,25 = 
Erróneas x (- 0,1) = - 
 Total 
 
 
 
 
 
 
 
 
 
 
 
Pág. 3 
FC - Junio 2008 - Problemas - Soluciones.pdf
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 1 
PROBLEMA 1 (2.5 puntos) 
 
Rellenar la tabla siguiente indicando en cada caso la instrucción que se ejecuta, las 
microinstrucciones y microórdenes necesarias para ello, así como las operaciones básicas. 
Completar también los espacios en blanco de las columnas ABUS y DBUS. 
 
Microinstrucciones Microórdenes 
Ops. 
básicas 
Instrucciones ABUS DBUS 
PC → ABUS 3000 H 
(ABUS) → DBUS 
DBUS → CO 
PC++ 
0 → Fc 
B → DBUS 
A-DBUS-Fc → A 
 salpc 
 mem, rd 
 ckco 
 reg1, ckpcl, ckpch 
 salpc 
 mem, rd 05H 
 ckdirl 
 reg1, ckpcl, ckpch 
 reg1,reg0,ckspl, cksph 
 salsp 
 salpch 
 mem, wr 
 reg1,reg0,ckspl, cksph 
 salsp 
 salpcl 
 mem, wr 
 reg0, ckdirl, ckdirh 
 saldir 
 mem, rd 
 reg0, ckpcl 
 reg1, ckdirl, ckdirh 
 saldir 
 mem, rd 
 reg0, ckpch 
 
 
 
NOTA: Téngase en cuenta que la parcelación de las columnas no es completa, por lo que pueden 
estar sujetas a nuevas subdivisiones durante la realización del ejercicio. Háganse todas aquellas que 
se consideren necesarias. 
id1009171 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 2 
PROBLEMA 1: Solución (y 1) 
 
Microinstrucciones Microórdenes 
Ops. 
básicas 
Instrucciones ABUS DBUS 
PC → ABUS salpc 3000 H 
(ABUS) → DBUS mem, rd 
DBUS → CO ckco 0F2H 
PC++ reg1,ckpcl,ckpch 
0 → Fc quitfc 
Fflag 
 
 
B → DBUS salb 
A-DBUS-Fc → A alu3, alu1, alu0, 
ckfl, ckfc, cka 
Italu 
SUB A,B 
 
PC → ABUS salpc 3001H 
(ABUS) → DBUS mem, rd 
DBUS → CO ckco 10H 
PC++ reg1, ckpcl, ckpch 
F 
 
PC → ABUS salpc 
(ABUS) → DBUS mem, rd 05H1 
DBUS → DIRL ckdirl 
PC++ reg1, ckpcl, ckpch 
F 
 
SP-- reg1,reg0,ckspl, cksph Iid16 
SP → ABUS salsp 
PCH → DBUS salpch 30H2 
DBUS → (ABUS) mem, wr 
W 
 
SP-- reg1,reg0,ckspl, cksph Iid16 
SP → ABUS salsp 
PCL → DBUS salpcl 
DBUS → (ABUS) mem, wr 
W 
 
2*DIRL → DIR reg0, ckdirl, ckdirh I2dirl 
DIR → ABUS saldir 000AH3 
(ABUS) → DBUS mem, rd 
DBUS → PCL reg0, ckpcl 
R 
 
DIR++ reg1, ckdirl, ckdirh Iid16 
DIR → ABUS saldir 
(ABUS) → DBUS mem, rd 
DBUS → PCH reg0, ckpch 
R 
INT 05H 
 
 
 
1 Vector de interrupción. 
2 Parte alta de la dirección de retorno. 
3 Parte baja de la entrada de la tabla de vectores correspondiente a la interrupción de vector 05H. 
UNIVERSIDAD PONTIFICIA
DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 3 
PROBLEMA 2 (2.5 puntos) 
 
Se dispone de la siguiente subrutina (subr), la cual trabaja sobre la información almacenada en una 
tabla de datos (tabla). 
 
tabla: DB 2CH,0B7H,70H,69H,34H,00H 
 ... 
subr: MOV X,tabla 
 MOV C,70H 
bucle: MOV A,(X) 
 CMP A,C 
 JZ final 
 INC X 
 AND A,0 
 CMP A,(X) 
 JZ final 
 JMP bucle 
final: RET 
 
a) Ensamblar la subrutina suponiendo que ésta se encuentra almacenada en memoria a partir de 
la posición 1000H y que los datos de la tabla que maneja comienzan en 0800H. Haga constar 
el resultado en la tabla siguiente, utilizando una fila para cada línea de programa a partir de 
la primera instrucción (MOV X,tabla) e indicando, además, la posición donde 
comienza. 
(1 punto) 
 
INSTRUCCIÓN DIRECCIÓN CÓDIGO MÁQUINA 
MOV X,tabla 1000H 
MOV C,70H 
MOV A,(X) 
CMP A,C 
JZ final 
INC X 
AND A,0 
CMP A,(X) 
JZ final 
JMP bucle 
RET 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 4 
PROBLEMA 2 (continuación) 
 
b) Realizar un seguimiento de dicha subrutina sobre la siguiente tabla, indicando en ella el 
número de iteraciones que realiza el programa y, para cada una de ellas, especificando el 
número de ciclos de cada instrucción que se ejecute. En la última columna de la derecha, 
deberá anotarse el total de ciclos que utiliza cada instrucción considerando todas las 
iteraciones indicadas. En la casilla recuadrada del final de la tabla debe figurar la suma de 
las cantidades que se encuentren encima suyo, es decir, la totalidad de los ciclos que requiere 
la subrutina para ejecutarse. 
(1.5 puntos) 
 
 Iterac. 
1 
 Total 
subr: MOV X,tabla 
 MOV C,70H 
bucle: MOV A,(X) 
 CMP A,C 
 JZ final 
 INC X 
 AND A,0 
 CMP A,(X) 
 JZ final 
 JMP bucle 
final: RET 
 TOTAL 
 
 
 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 5 
PROBLEMA 2: Solución (1) 
 
Apartado a) 
 
INSTRUCCIÓN DIRECCIÓN CÓDIGO MÁQUINA 
MOV X,tabla 1000H 56H, 00H, 08H 
MOV C,70H 1003H 7CH, 70H 
MOV A,(X) 1005H 6EH, 00H 
CMP A,C 1007H 83H 
JZ final 1008H 1BH, 0AH 
INC X 100AH 35H 
AND A,0 100BH 9CH, 00H 
CMP A,(X) 100DH 86H, 00H 
JZ final 100FH 1BH, 03H 
JMP bucle 1011H 12H, 05H, 10H 
RET 1014H 08H 
 
NOTA: Para aquellos puntos donde figuren etiquetas y/o saltos condicionales, téngase en cuenta 
que tabla=0800H, final=1014H y bucle=1005H. 
 
 
Apartado b) 
 
Mediante una estructura de bucle, la subrutina recorre con ayuda del registro X una lista de 
datos almacenados en memoria desde la posición etiquetada como �tabla� y compara el contenido 
de esas posiciones con el del registro C, cuyo valor siempre es 70H. Si se da esa coincidencia de 
valores, se procede a salir del bucle y a dar por finalizada la subrutina. 
 
También se comprueba dentro del bucle si X llega al final de la lista de datos (00H), 
aunque esto último nunca produce, pues en la tercera iteración hay coincidencia con el dato 70H, 
saliendo así del bucle. 
 
Según lo expuesto, la tabla pedida queda como sigue: 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 6 
PROBLEMA 2: Solución (y 2) 
 
 
 Iterac. 
1 
Iterac. 
2 
Iterac. 
3 
 Total 
subr: MOV X,tabla 15 15 
 MOV C,70H 10 10 
bucle: MOV A,(X) 13 13 13 39 
 CMP A,C 7 7 7 21 
 JZ final 7 7 12 26 
 INC X 7 7 14 
 AND A,0 10 10 20 
 CMP A,(X) 13 13 26 
 JZ final 7 7 14 
 JMP bucle 15 15 30 
final: RET 13 13 
 TOTAL 228 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 7 
PROBLEMA 3 (2.5 puntos) 
 
Se dispone de la siguiente subrutina para el INDALO 3.0: 
 
subr: PUSH BC 
 PUSH X 
 MOV X,2000H 
 MOV C,30H 
bucle: MOV B,(X) 
 IN A,C 
 CMP A,B 
 JZ final 
 INC X 
 JMP bucle 
final: POP X 
 POP BC 
 RET 
 
También se conoce el contenido de algunos registros, posiciones de memoria y puertos de E/S antes 
de empezar a ejecutar ese código: 
 
Puerto de 
E/S 
Contenido Dirección Contenido Registro Contenido 
10H 34H 0038H 33H PC 1000H 
20H 0EFH 0039H 22H SP 0500H 
2AH 0ABH 0040H 2CH BC 2030H 
2FH 00H 0041H 1FH X 1C2DH 
30H 25H 0042H 49H 
34H 10H � � 
3FH 22H 2000H 0DDH 
 2001H 0EH 
 2002H 25H 
 2003H 00H 
 2004H 52H 
 
Suponiendo que las interrupciones están habilitadas, responda breve y razonadamente a las 
siguientes preguntas: 
 
a) ¿Cuál es el contenido del registro SP después de ejecutar la instrucción PUSH X? ¿Qué 
contendrá la celda de memoria señalada por ese registro? 
(0.5 puntos) 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 8 
PROBLEMA 3 (continuación) 
 
b) Con los datos del programa, calcule dónde empieza la rutina de servicio de la interrupción 
20H. 
(0.5 puntos) 
 
c) En la primera vez que se ejecuta el bucle que incluye la subrutina se produce la interrupción 
20H mientras se está procesando la instrucción JZ final, ¿cuál es el valor de SP y PC 
cuando vaya a leerse la primera instrucción de la rutina de servicio de esa interrupción? 
¿Cuál es la dirección de retorno que se ha guardado en la pila? 
(0.8 puntos) 
 
d) ¿Qué valores contendrán los registros A, B, C y SP cuando se termine de ejecutar la 
instrucción RET? ¿Cuántas veces se ejecuta el bucle? 
(0.7 puntos) 
 
 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 9 
PROBLEMA 3: Solución (1) 
 
Mediante una estructura de bucle, la subrutina recorre una lista de datos almacenados en 
memoria desde la posición 2000H con ayuda del registro X y compara el contenido de esas 
posiciones con el del puerto de E/S de dirección 30H, cuyo valor siempre se vuelca sobre el 
acumulador A. Si se da esa coincidencia de valores, se procede a salir del bucle, dejar los registros 
X Y BC como estaban antes de comenzar la ejecución de la subrutina y a retornar al punto del 
programa donde fue invocada. En caso contrario, se incrementa X para avanzar por la lista de 
datos y realizar nuevas comparaciones. 
 
Dado que el contenido del puerto 30H y el de la celda de dirección 2002H son iguales 
(25H), en la tercera iteración del bucle se produce la coincidencia comentada. 
 
 
Apartado a) 
 
Las dos primeras instrucciones PUSH de la subrutina guardan en pila el contenido inicial de 
los registros BC y X, que son los dados en el enunciado (BC = 2030H y X = 1C2DH).
Teniendo en 
cuenta, además, que inicialmente SP = 0500H, la pila y este último registro quedarán de la 
siguiente manera: 
 
Dirección Contenido Comentario 
SP = 04FCH 2DH 
04FDH 1CH 
Contenido de X 
04FEH 30H 
04FFH 20H 
Contenido de BC 
0500H ? 
 
 
Apartado b) 
 
2*vector = 2*20H = 40H = 0040H  addrL = (0040H) = 2CH 
2*vector + 1 = 0041H  addrH = (0041H) = 1FH 
 
addr = 1F2CH 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 10 
PROBLEMA 3: Solución (2) 
 
Apartado c) 
 
La interrupción no se atiende hasta completar la ejecución de la instrucción en curso. 
Puesto que estamos en la primera iteración del bucle, no hay coincidencia en la comparación 
realizada, por lo que el salto condicional (JZ final) no se produce. En consecuencia, después de 
ejecutar esa instrucción, el registro PC apunta a la siguiente, que es INC X y que comienza en la 
posición 100DH (téngase en cuenta que la primera instrucción de la subrutina comienza donde 
esté apuntando el PC antes de iniciarse la ejecución de dicha subrutina, es decir, 1000H según el 
enunciado). Es entonces ésa la dirección de retorno que debe guardarse en la pila antes de 
invocar a la rutina de servicio de la interrupción. Después de eso, se carga en PC la dirección de 
inicio de dicha rutina, la cual se ha calculado en el apartado previo. Así: 
 
Dirección Contenido Comentario 
SP = 04FAH 0DH 
04FBH 10H 
Dirección de retorno 
 (Contenido de PC) 
04FCH 2DH 
04FDH 1CH 
Contenido de X 
04FEH 30H 
04FFH 20H 
Contenido de BC 
0500H ? 
 
PC = addr = 1F2CH 
 
 
Apartado d) 
 
Antes de RET, previamente se han ejecutado las dos instrucciones POP, por lo que los 
registros X y BC contendrán lo que tenían antes de empezar la ejecución de la subrutina. Así: 
 
B = 20H C = 30H 
 
Por otro lado, RET restaura la dirección de retorno de la subrutina. Eso implica incrementar 
dos veces el valor de SP después de ejecutar las instrucciones POP, luego: 
 
SP = 0502H 
 
En cuanto al registro A, siempre contiene el dato almacenado en el puerto de E/S de 
dirección 30H para cada una de las comparaciones (téngase en cuenta lo comentado al principio 
de esta solución): 
A = 25H 
 
Por último, y como ya se ha dicho al principio, el bucle se ejecuta tres veces. 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 1 
PROBLEMA 1 (2.5 puntos) 
 
Rellenar la tabla adjunta indicando en cada caso la instrucción que se ejecuta, las microinstrucciones 
y microórdenes necesarias para ello, así como las operaciones básicas. Completar también los 
espacios en blanco de las columnas ABUS y DBUS. 
 
Instrucciones µInstrucciones µÓrdenes 
Ops. 
básicas 
ABUS DBUS 
PC → ABUS 2000H 
(ABUS) →DBUS 
DBUS → CO 7EH 
PC++ 
PC → ABUS 
(ABUS) →DBUS 
DBUS → DIRL 00H 
PC++ 
X → ABUS 
ABUS+DIRL→ABUS 
(ABUS) → DBUS 
DBUS → C 
PC → ABUS 
(ABUS) →DBUS 
DBUS → CO 
PC++ 
0 → Fc 
 alu3,alu0,cka,ckfl,ckfc 
PC → ABUS 
(ABUS) → DBUS 
DBUS → CO 
 
PC++ 
 
 
 
NOTA: Téngase en cuenta que la parcelación de las columnas no es completa, por lo que pueden 
estar sujetas a nuevas subdivisiones durante la realización del ejercicio. Háganse todas aquellas que 
se consideren necesarias. 
 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 2 
PROBLEMA 1: Solución (y 1) 
 
Instrucciones µInstrucciones µÓrdenes 
Ops. 
básicas 
ABUS DBUS 
PC → ABUS 2000H 
(ABUS) →DBUS 
DBUS → CO 7EH 
PC++ 
F 
 
PC → ABUS 
(ABUS) →DBUS 
DBUS → DIRL 2001H 00H 
PC++ 
F 
 
X → ABUS 
ABUS+DIRL→ABUS 
(ABUS) → DBUS 
MOV C,(X) 
DBUS → C 
Ralu 
 
PC → ABUS 2002H 
(ABUS) →DBUS 
DBUS → CO E0H 
PC++ 
0 → Fc 
Fflag 
 
SHL A 
A< rc <→ A alu3,alu0,cka,ckfl,ckfc Italu 
PC → ABUS 
(ABUS) → DBUS 
DBUS → CO 00H 
NOP 
PC++ 
F 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 3 
PROBLEMA 2 (2.5 puntos) 
 
Un microprocesador basado en el Indalo 3.0, está ejecutando el siguiente fragmento de programa 
 
ORG 2000H 
MOV B,(2500H) 
MOV C,(2501H) 
XOR A,A 
JZ ETQ 
 
Además, se conocen los siguientes datos iniciales: 
 
PC = 2000H, SP = 0FF00H 
 
y los contenidos de las siguientes posiciones de memoria 
 
Posición Contenido 
0005H 23H 
0006H 10H 
0007H 21H 
0008H 30H 
------------- -------------- 
2007H 1BH 
2008H 05H 
2009H 9DH 
 
En estas condiciones, se pide: 
 
a) Determinar el espacio que ocupa en memoria el fragmento de programa. ¿Cuál es la 
dirección correspondiente a la etiqueta ETQ? ¿Cual sería la instrucción que habría a 
continuación del fragmento de programa? 
(0.8 puntos) 
b) Cuando se está ejecutando la instrucción JZ ETQ se produce una interrupción con vector 
03H. Indicar el contenido de la pila antes de leer el código de operación de la primera 
instrucción de la rutina de atención a la interrupción, así como los valores de PC y SP en ese 
momento. 
(0.8 puntos) 
c) Escribir una tabla en la que se indiquen los ciclos de máquina que se ejecutan desde que se 
recibe la interrupción hasta justo antes de leer la primera instrucción de la rutina de 
atención. Especificar el tipo de cada ciclo, así como los contenidos de los buses durante cada 
uno de ellos. 
(0.9 puntos) 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 4 
PROBLEMA 2: Solución (1) 
 
Apartado a) 
 
Instrucción Nº Bytes 
MOV B,(2500H) 3 
MOV C,(2501H) 3 
XOR A,A 1 
JZ ETQ 2 
 
Por lo tanto, este fragmento de programa ocupa: 
 
9 Bytes 
 
 Según el problema, la primera instrucción empieza en la dirección 2000H, por lo tanto, la 
instrucción JZ ETQ ocupará las posiciones 2007H y 2008H y, según la tabla de memoria: 
 
(2007H)= 1BH  Código de operación de la instrucción JZ 
 
(2008H) = 05H  Cantidad que hay que sumar al PC para obtener la dirección de salto 
 
Dirección = PC + 05H = 2009H + 05H = 200EH 
 
ETQ = 200EH 
 
El contenido de la siguiente posición de memoria es 9DH. Este es el código de operación de 
la siguiente instrucción: 
 
9DH = 10011101  Código 10011op8 
 
Esto se corresponde con la instrucción AND A,op8 donde op8 = 101 = (BC). Así, la 
instrucción es: 
 
AND A, (BC) 
 
 
 
 
 
 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 5 
PROBLEMA 2: Solución (y 2) 
 
Apartado b) 
 
Después de la ejecución de XOR A,A, el resultado es 0, lo que implica que FZ= 1, luego se 
cumple la condición de salto y, así, al terminar de ejecutarse la instrucción, el contenido del PC 
será: 
 
PC = 200EH 
 
Esta es la
dirección que se guardará en la pila, quedando como sigue: 
 
Dirección Contenido 
0FEFEH 0EH 
0FEFFH 20H 
0FF00H ? 
 
donde el puntero SP toma el valor: 
 
SP = 0FEFEH 
 
En el PC se cargará la dirección donde empieza la rutina de atención: 
 
V*2 = 06H  De la tabla de memoria: (0006H) = 10H 
 
V*2+1 = 07H  (0007H) = 21H 
 
Por lo tanto: 
 
PC = 2110H 
 
 
Apartado c) 
 
TIPO ABUS DBUS 
RI ------------ 03H 
W 0FEFFH 20H 
W 0FEFEH 0EH 
R 0006H 10H 
R 0007H 21H 
 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 6 
PROBLEMA 3 (2.5 puntos) 
 
El siguiente programa implementa un reloj en tiempo real. El funcionamiento es el siguiente: A 
partir de un cristal de cuarzo, se genera una frecuencia que, a través de divisores se convierte en una 
señal de 1 Hz. Esta señal produce interrupciones cada segundo que actualizan los registros que 
contiene los minutos y los segundos. 
 
 ORG 2000H 
 XOR A,A 
 MOV A,B 
 CMP A,59 
 JZ ETQ1 
 INC B 
 JMP FIN 
ETQ1: MOV B,0 
 MOV A,C 
 CMP A,59 
 JZ ETQ2 
 INC C 
 JMP FIN 
ETQ2: MOV C,0 
FIN: HLT 
 
Sabiendo que la frecuencia de la CPU es de 100 MHz, se pide: 
 
a) Código máquina del programa. 
(0.8 puntos) 
b) Espacio que ocupa en memoria. 
(0.4 puntos) 
c) Analizar el programa. Indique qué registro almacena los segundos y cuál los minutos. 
(0.5 puntos) 
d) ¿Cuánto tiempo tarda en ejecutarse el programa en el caso de que B = 59? ¿Y en el caso de 
que B< 59? 
(0.8 puntos) 
 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 7 
PROBLEMA 3: Solución (1) 
 
DIRECCIÓN INSTRUCCIÓN CÓDIGO 
Nº DE 
CICLOS 
2000H XOR A,A F9H 7 
2001H MOV A,B 6AH 7 
2002H CMP A,59 84H, 3BH 10 
2004H JZ ETQ1 1BH, 04H 7/12 
2006H INC B AAH 7 
2007H JMP FIN 12H, 17H, 20H 15 
200AH = ETQ1 MOV B,0 74H, 00H 10 
200CH MOV A,C 6BH 7 
200DH CMP A,59 84H, 3BH 10 
200FH JZ ETQ2 1BH, 04H 7/12 
2011H INC C ABH 7 
2012H JMP FIN 12H, 17H, 20H 15 
2015H = ETQ2 MOV C,0 7CH, 00H 10 
2017H = FIN HLT 0EH 3 
 
Apartado a) 
 
De la tabla anterior, y viendo los bytes que ocupa cada instrucción, podemos deducir que 
el espacio que ocupa el programa en memoria es: 
 
 24 Bytes 
 
 
Apartado b) 
 
Como se indica en el enunciado, se trata de un reloj en tiempo real, por lo tanto, el primer 
registro en actualizarse será el de los segundos, y después el de los minutos. Siguiendo la 
secuencia del programa, vemos que, en primer lugar, se comprueba si B ha alcanzado el valor 59. 
Si no es así, se incrementa este registro y se sale del programa hasta la siguiente interrupción. 
Cuando B = 59, se habrá completado un minuto, con lo cual se pasará a actualizar el registro de 
los minutos de forma similar a como se ha hecho con el de los segundos (previamente se habrá 
puesto a cero el registro B). El programa termina cada vez que se actualiza el registro B o, si B = 
59, cada vez que se actualiza el registro C. Entonces: 
 
B  segundos 
 
C  minutos 
 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 8 
PROBLEMA 3: Solución (2) 
 
Apartado c) 
 
 Si B<59, se ejecutan las siguientes instrucciones: 
 
Instrucción Nº Ciclos 
XOR A,A 7 
MOV A,B 7 
CMP A,59 10 
JZ ETQ1 7 
INC B 7 
JMP FIN 15 
HLT 3 
 
Todas las instrucciones se ejecutan una vez. El número total de ciclos de reloj será la suma 
de todos ellos, lo que da un total de 56 ciclos y el tiempo será: 
 
T = Nº Ciclos * Tiempo de ciclo = 56 * (1/100 MHz) = 56 * 10
-8
 s = 0,56 * 10
-6
 s = 0,56 µs 
 
 Si B = 59, pueden ocurrir dos cosas: 
 
o Que C = 59 o no. Si C<59, se ejecutan las siguientes instrucciones: 
 
Instrucción Nº Ciclos 
XOR A,A 7 
MOV A,B 7 
CMP A,59 10 
JZ ETQ1 12 
MOV B,0 10 
MOV A,C 7 
CMP A,59 10 
JZ ETQ2 7 
INC C 7 
JMP FIN 15 
HLT 3 
 
El número de ciclos es 95 y el tiempo es: 
 
T = 0,95 µs 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Departamento de Electrónica y Comunicaciones 
 
FUNDAMENTOS DE COMPUTADORES (Problemas. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 9 
PROBLEMA 3: Solución (y 3) 
 
o Si C = 59, se ejecutan las siguientes instrucciones 
 
Instrucción Nº Ciclos 
XOR A,A 7 
MOV A,B 7 
CMP A,59 10 
JZ ETQ1 12 
MOV B,0 10 
MOV A,C 7 
CMP A,59 10 
JZ ETQ2 12 
MOV C,0 10 
HLT 3 
 
El número total de ciclos es de 88 y el tiempo será: 
 
T = 0,88 µs 
 
 
 
 
 
 
 
FC - Junio 2008 - Teor?a - Soluciones.pdf
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Mañana) 
 CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 1 
TEST (2.5 puntos) 
 
En las siguientes preguntas de tipo test, sólo existe una respuesta correcta. Cada pregunta tiene un valor de 0,25 
puntos. Cada respuesta incorrecta descuenta 0,1 puntos. La pregunta que deje en blanco no sumará ni restará puntos. 
Notas: · Se debe poner una X sobre la letra de la tabla "SOLUCIÓN" (que encontrará en la última hoja) 
correspondiente a la respuesta correcta. 
 · La tabla "CALIFICACIÓN" no deberá utilizarla, es para su posterior calificación. 
 · No se tendrán en cuenta las respuestas que no se encuentren en dicha tabla "SOLUCIÓN" 
 
 
1) La instrucción CALL addr: 
a) Tiene el mismo tratamiento que la instrucción JMP addr. 
b) Utiliza la pila para guardar el registro de flags. 
c) Se distingue de JMP addr en que guarda en la pila el contenido de A. 
d) **Cuando se ejecuta la instrucción, se guarda el contenido del PC en la pila. 
 
 
2) Después de ejecutar la instrucción OR A,A ... 
a) Quedan los 8 bits de A a uno y el flag FZ a 0. 
b) **A queda inalterado y los flags FC y FO a 0. 
c) Quedan los 8 bits de A a uno y los flags FC y FO a 0. 
d) Quedan los 8 bits de A a cero y el flag FZ a 1. 
 
 
3) En el Indalo 3.0: 
a) **La interrupción hardware presenta un ciclo de máquina específico para leer el vector. 
b) Sólo existen interrupciones hardware. 
c) La microorden inta la genera el periférico para reconocer la interrupción. 
d) El vector es generado automáticamente por la CPU en respuesta a la interrupción producida. 
 
 
4) De la memoria central de un ordenador podemos afirmar que: 
a) **Existe un decodificador externo común a todos los circuitos integrados de memoria y otro interno 
para cada circuito. 
b) Sólo existe el decodificador externo. 
c) Sólo existen los decodificadores internos. 
d) Los decodificadores internos sólo se incluyen en los circuitos de memoria RAM. 
 
 
5) Después de ejecutar la instrucción CMP A,B, el registro de flags queda de la siguiente forma: Fc = 
0, Fo = 1, Fz = 0, Fs = 1, Fp = 1. Podemos afirmar que, en enteros � 
a) � sin signo, A< B y no hay desbordamiento. 
b) � con signo, A< B y hay desbordamiento. 
c) � sin signo, A > B y hay desbordamiento. 
d) **� con signo, A > B y hay desbordamiento. 
 
id1086921 pdfMachine by Broadgun Software - a
great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com 
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Mañana) 
 CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 2 
TEST (continuación) 
 
6) Con relación a las microinstrucciones que en el INDALO 3.0 tienen como destino el registro DIR, 
puede afirmarse lo siguiente: 
a) **En la única en la que no se activan ambos relojes (dirl y dirh) simultáneamente, tampoco se 
activan ni reg0, ni reg1. 
b) Se activan ambos relojes simultáneamente en las microinstrucciones en las que reg1=1, y se activa 
sólo uno de ellos en las que reg1=0. 
c) Se activan ambos relojes simultáneamente en las microinstrucciones en las que reg0=0, y se activa 
sólo uno de ellos en las que reg0=1. 
d) Ninguna de las anteriores opciones es cierta. 
 
 
7) Los saltos condicionales en el Indalo 3.0: 
a) Utilizan direccionamiento absoluto. 
b) Se manejan con instrucciones de tres bytes. 
c) **Tienen el rango de salto limitado. 
d) No incrementan el PC al leer rel8. 
 
 
8) ¿En qué posiciones de memoria está almacenada la dirección de inicio de la rutina de servicio de 
la interrupción 2AH?: 
a) **0054H y 0055H. 
b) 0060H y 0061H. 
c) 002AH y 002BH. 
d) 2A00H y 2B00H. 
 
 
9) En el Indalo 3.0, si la pila se ha inicializado a 0FFFFH, puede afirmarse que empezará a ocuparse 
desde: 
a) Esa misma dirección. 
b) **0FFFEH. 
c) 0000H. 
d) 0FFFDH. 
 
 
10) De la ALU del Indalo 3.0 podemos decir que: 
a) En ella se ejecuta la suma en los direccionamientos indexados. 
b) Siempre ejecuta la operación suma sin carry. Para hacer la instrucción suma con carry hay que poner 
previamente FC = 1. 
c) **El registro A siempre figura en todas las operaciones aritméticas y lógicas. 
d) Ninguna de las anteriores respuestas es cierta. 
 
 
 
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Mañana) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 3 
TEST: Solución (y 1) 
 
 
SOLUCIÓN 
 
1 2 3 4 5 6 7 8 9 10 
a a a a a a a a a a 
b b b b b b b b b b 
c c c c c c c c c c 
d d d d d d d d d d 
 
 
 La respuesta correcta se indicará tachando la letra correspondiente con una X. 
 Para anular una respuesta dada, se rodeará con una circunferencia , de modo que se entenderá: 
 
 Respuesta dada por el alumno 
 Respuesta anulada por el alumno 
 
 
CALIFICACIÓN 
 
Correctas x 0,25 = 
Erróneas x (- 0,1) = - 
 Total 
 
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Tarde) 
 CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 1 
TEST (2.5 puntos) 
 
En las siguientes preguntas de tipo test, sólo existe una respuesta correcta. Cada pregunta tiene un valor de 0,25 
puntos. Cada respuesta incorrecta descuenta 0,1 puntos. La pregunta que deje en blanco no sumará ni restará puntos. 
Notas: · Se debe poner una X sobre la letra de la tabla "SOLUCIÓN" (que encontrará en la última hoja) 
correspondiente a la respuesta correcta. 
 · La tabla "CALIFICACIÓN" no deberá utilizarla, es para su posterior calificación. 
 · No se tendrán en cuenta las respuestas que no se encuentren en dicha tabla "SOLUCIÓN" 
 
 
1) En una instrucción MOV del Indalo 3.0: 
a) Pueden efectuarse transferencias entre dos posiciones de memoria diferentes. 
b) Sus operandos nunca pueden ser dos registros. 
c) **Uno de sus operandos siempre es un registro. 
d) El registro destino puede ser DIR. 
 
 
2) Entre las características de una memoria central podemos citar: 
a) Tiene elementos móviles. 
b) Su modo de acceso es secuencial. 
c) La lectura es destructiva. 
d) **La escritura no requiere borrado previo. 
 
 
3) Después de ejecutar la instrucción CMP A,B, los flags han quedado de la siguiente manera: FC = 1, 
FO = 1, FS = 0 y FZ = 0. En estas condiciones, podemos afirmar que: 
a) En enteros sin signo no hay desbordamiento y A > B. 
b) En enteros sin signo hay desbordamiento y A > B. 
c) **En enteros con signo hay desbordamiento y A < B. 
d) En enteros con signo hay desbordamiento y A > B. 
 
 
4) La interrupción hardware: 
a) Siempre se atiende, sin tener en cuenta el valor del registro de flags. 
b) No genera ciclos de máquina. 
c) **Provoca un salto a una subrutina. 
d) Ninguna de las anteriores respuestas es correcta. 
 
 
5) De una instrucción de salto incondicional podemos decir que siempre: 
a) **Ejecuta una operación FNOINC. 
b) Ejecuta tres ciclos de fetch. 
c) Consume los mismos ciclos de reloj, con independencia del modo de direccionamiento empleado. 
d) Ninguna de las anteriores respuestas es cierta. 
 
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Tarde) 
 CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 2 
TEST (continuación) 
 
6) De la instrucción PUSH AF podemos decir que: 
a) Modifica el registro de flags. 
b) **Produce una operación de escritura en la pila. 
c) Durante su ejecución, aumenta el contenido del puntero de pila. 
d) Produce una operación de lectura en la pila. 
 
 
7) Después de ejecutar las instrucciones PUSH BC y POP X en este mismo orden: 
a) El registro SP queda decrementado en dos unidades. 
b) El tamaño de la pila aumenta en dos bytes. 
c) **El resultado que se obtiene es el mismo que si se ejecuta la instrucción MOV X, BC. 
d) El registro SP queda incrementado en dos unidades. 
 
 
8) De las instrucciones aritméticas de suma y resta podemos decir que: 
a) Efectúan una operación aritmética entre dos operandos, independientemente del tipo de los mismos. 
b) **Las operaciones se realizan entre un operando cualquiera de ocho bits y el acumulador. 
c) Siempre ocupan dos bytes en memoria. 
d) El espacio que ocupan en memoria no depende del tipo de operandos que utilicen. 
 
 
9) La instrucción JZ 2518H: 
a) Para calcular la dirección de salto, suma una cantidad fija al registro X. 
b) **Utiliza direccionamiento relativo al contador de programa. 
c) Ocupa tres bytes en memoria. 
d) Siempre ejecuta dos ciclos de fetch. 
 
 
10) En el Indalo 3.0: 
a) **La instrucción INT vector usa la operación Iid16. 
b) La instrucción JMP reg16 necesita tres ciclos de máquina para ser leída. 
c) Cuando se trae de memoria el valor rel8, se lleva directamente a PC. 
d) Todas las instrucciones utilizan como primera operación básica un fetch de tipo F. 
 UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
 Departamento de Electrónica y Comunicaciones 
 
 FUNDAMENTOS DE COMPUTADORES (Teoría. Examen Final. Tarde) 
 
APELLIDOS Y NOMBRE: 
Nº DE EXPEDIENTE: GRUPO: CONVOCATORIA: 16 de Junio de 2008 
 
 
Pág. 3 
TEST: Solución (y 1) 
 
 
SOLUCIÓN 
 
1 2 3 4 5 6 7 8 9 10 
a a a a a a a a a a 
b b b b b b b b b b 
c c c c c c c c c c 
d d d d d d d d d d 
 
 
 La respuesta correcta se indicará tachando la letra correspondiente con una X. 
 Para anular una respuesta dada, se rodeará con una circunferencia , de modo que se entenderá: 
 
 Respuesta dada por el alumno 
 Respuesta anulada por el alumno 
 
 
CALIFICACIÓN 
 
Correctas x 0,25 = 
Erróneas x (- 0,1) = - 
 Total 
 
 
 
 
 
 
 
 
 
 
 
FC_-_Descriptores_-_Parte_I.pdf
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-1 
Versión 1.0
28-02-2004
CAPÍTULO 1: ARQUITECTURA GENERAL 
 
 
Fig.1.1. Arquitectura de un ordenador según Von Neumann. 
 
 
Fig.1.2. Organigrama de bloques de un ordenador, con interfaces a periféricos. 
 
 
Fig.1.3. Esquema
de una memoria principal de un ordenador. 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-2 
Versión 1.0
28-02-2004
 
 
Fig.1.4. Configuraciones de buses. 
 
 
 
 
Fig.1.5. Configuración de varios buses jerarquizados. 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-3 
Versión 1.0
28-02-2004
CAPÍTULO 2: MEMORIAS 
 
 
 
 
Fig.2.1. Memoria de acceso aleatorio con circuito de control y driver bidireccional. 
 
 
Fig.2.2. Estructura de memorias 2D y 3D. 
 
 
Fig.2.3. CIs de RAM estática y dinámica. 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-4 
Versión 1.0
28-02-2004
 
Fig.2.4. Incremento de la longitud de palabra. 
 
 
Fig.2.5. Incremento del número de palabras. 
 
 
Fig.2.6. Mapa de memoria y distribución de CIs 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-5 
Versión 1.0
28-02-2004
 
 
Fig.2.7. Incremento del número y tamaño de palabras. 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-6 
Versión 1.0
28-02-2004
 
Fig.2.8. Signos convencionales de los cronogramas. 
 
Fig.2.9. Cronograma de acceso a una memoria RAM estática. 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-7 
Versión 1.0
28-02-2004
 
Fig.2.10. Cronograma de acceso a una memoria ROM 
 
Fig.2.11. Señales generadas por la CPU para leer memoria. 
 
Fig.2.12. Acceso a la memoria con dos ciclos de espera.
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-8 
Versión 1.0
28-02-2004
 
 
Fig.2.13. Anticipación de direcciones. 
 
Fig.2.14. Configuración de memoria entrelazada.
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-9 
Versión 1.0
28-02-2004
 
 
 
Fig.2.15. Jerarquía de memorias. 
 
 
 
 
 
 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-10 
Versión 1.0
28-02-2004
CAPÍTULO 3: UNIDAD DE PROCESO 
 
 
Fig.3.1. Esquema del bloque funcional de una ALU. 
 
 
Fig.3.2. (a) Unidad de Proceso de una máquina de tres direcciones. 
 (b) Formato de instrucción que utiliza. 
 
 
Fig.3.3. (a) Unidad de Proceso de una máquina de una sola dirección. 
 (b) Formato de instrucción que utiliza. 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-11 
Versión 1.0
28-02-2004
 
ALU1 ALU0 Operación 
0 0 Suma Aritmética 
0 1 Resta Aritmética 
1 0 AND Lógico 
1 1 OR Lógico 
Tabla.3.1. Operaciones de la ALU de 1 bit. 
 
Fig.3.4.- ALU de un solo bit 
 
 
Fig.3.5.- ALU de 4 bits, con registro de flags. 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-12 
Versión 1.0
28-02-2004
 
Rotación a través de carry a la izquierda
Shift a la izquierda Shift aritmético a la derecha
 
Fig.3.6. Shifts y rotaciones. 
 
ESTADO DE LOS FLAGS COMPROBACIÓN DE FLAGS 
Fz Fc Significado Condición 
Flags a 
comprobar 
0 0 A>B A>B Fc=0 y Fz=0 
0 1 A<B A=B Fz=1 
1 0 A=B A<B Fc=1 
 A>=B Fc=0 
 A<>B Fz=0 
 A<=B Fc=1 ó Fz=1 
Tabla 3.2.- Comparación o resta entre enteros sin signo (A-B). 
 
ESTADO DE LOS FLAGS COMPROBACIÓN DE FLAGS 
Fz Fs Fo Significado Condición Flags a comprobar
0 0 0 A>B A>B Fo=Fs y Fz=0 
0 0 1 A<B A=B Fz=1 
0 1 0 A<B A<B Fo≠Fs 
0 1 1 A>B A>=B Fo=Fs 
1 0 0 A=B A<>B Fz=0 
 A<=B Fz=1 ó Fo≠Fs 
Tabla 3.3.- Comparación o resta entre enteros con signo (A-B). 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-13 
Versión 1.0
28-02-2004
CAPÍTULO 4: UNIDAD DE CONTROL 
 
 Fig.4.1. Unidad de Control. 
 
Fig.4.3. Transferencia entre registros a través de un bus. 
µórdenes 
ABus 
CBus 
DBus 
µórdenes 
µórdenes 
Contador de Programa Secuenciador 
Central 
Decodificador de Inst.
Registro de Instrucción 
Flags 
Fig.4.2. Unidad de control µprogramada según Wilkes 1.951 
RI CO 
µórdenes 
reloj 
DC 
SM
C
 
Flag 
Bus interno 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-14 
Versión 1.0
28-02-2004
 
Fig.4.4. Unidad de control y memoria. 
 
 
 
OPERACIÓN µINSTRUCCIÓN µÓRDENES 
PC→ABus Salida de PC 
(ABus)→DBus Líneas de Cbus necesarias para leer la memoria 
DBus→RI Carga paralelo de RI 
FETCH 
(PC)→RI; 
PC++ 
PC+1→PC Incrementar PC 
RIl*→ABus Salida de RIl* INTERNA 
RIl*→PC ABus→PC Carga paralelo de PC 
* Denominaremos en esta tabla RIl a los 24 bits menos significativos de RI, que son los que 
contienen la dirección a la que hay que saltar. 
 
Tabla 4.1. Microinstrucciones necesarias para leer una instrucción. 
 
ABus 
CBus 
DBus 
Secuenciador 
PC 
RI
126456H 
87654321H 
Memoria 
Dirección 
123456H 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-15 
Versión 1.0
28-02-2004
 
 
Fig.4.5. Las 3 primeras microórdenes. 
 
ABus 
CBus 
DBus 
Secuenciador 
PC 
RI
123456H 
87654321H 
Memoria 
Dirección 
123456H 
 
 
ABus 
CBus 
DBus 
Secuenciador 
PC 
RI
123456H 
87654321H 
Memoria 
Dirección 
123456H 
 
654321H 87H 
ABus 
CBus 
DBus 
Secuenciador 
PC 
RI
123456H 
87654321H 
Memoria 
Dirección 
123456H 
 
PC→ABus
(ABus) →DBus 
DBus→RI 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-16 
Versión 1.0
28-02-2004
 
 
Fig.4.6. Las 3 últimas microórdenes. 
 
654321H 87H 
ABus 
CBus 
DBus 
Secuenciador 
PC 
RI
123457H 
87654321H 
Memoria 
Dirección 
123456H 
 
PC+1→PC
654321H 87H 
ABus 
CBus 
DBus 
Secuenciador 
PC 
RI
123456H 
87654321H 
Memoria 
Dirección 
123456H 
 
RIl→ABus
654321H 87H 
ABus 
CBus 
DBus 
Secuenciador 
PC 
RI
654321H 
Memoria 
 
 
ABus→PC 
FC_-_Descriptores_-_Parte_II.pdf
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-17 
Versión 1.0
28-02-2004
CAPÍTULO 5: INDALO 1.0 
 
 
Fig.5.1. Unidad Central de Proceso (CPU) de Indalo 1.0. 
 
 
Fig.5.2. Contenido de un bloque triestado de 8 bits. 
 
 
 
Fig.5.3. Contador ascendente/descendente de 8 bits con carga paralela síncrona. 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-18 
Versión 1.0
28-02-2004
 
 
Fig.5.4 Registro Acumulador en el Indalo 1.0 
 
 
 
 
Fig.5.5 Registro de Instrucción y PC en el Indalo 1.0 
 
 Código máquina 
Ensamblador Binario Hexadecimal 
ADD A, (address) 0000 0000 00H 
MOV A, (address) 0001 0000 10H 
MOV (address), A 0010 0000 20H 
JMP address 0011 0000 30H 
Tabla 5.1. Set de instrucciones de Indalo 1.0. 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento
de Electrónica y Comunicaciones 
 
 
Pag.-19 
Versión 1.0
28-02-2004
Fig.5.6. Cronogramas de los ciclos de máquina en Indalo 1.0 
 
Operación Nivel RT Microórdenes 
 PC → ABus salpc 
Primer ciclo de (ABus) → DBus mem, rd 
máquina Dbus → CO ckco 
(fetch1) PC + + → PC reg1, ckpc 
 PC → ABus salpc 
2º ciclo de (ABus) → DBus mem, rd 
máquina DBus → DIRL ckdirl 
(fetch2) PC + + → PC reg1, ckpc 
 PC → ABus salpc 
Tercer ciclo de (ABus) → DBus mem, rd 
máquina DBus → DIRH ckdirh 
(fetch3) PC ++ → PC reg1,ckpc 
Tabla 5.2 Ciclos de fetch comunes a las 4 instrucciones. 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-20 
Versión 1.0
28-02-2004
 
Operación Nivel RT Microórdenes 
Ciclo de lectura DIR → ABus saldir 
De memoria (ABus) → DBus mem, rd 
A+(DIR)→A DBus + A → A alu0, cka 
Tabla 5.3 Ejecución de la instrucción ADD A, (address) 
 
Operación Nivel RT Microórdenes 
Ciclo de lectura DIR → ABus saldir 
De memoria: (ABus) → DBus mem, rd 
(DIR)→A DBus → A cka 
Tabla 5.4.Ejecución de la instrucción MOV A, (address) 
 
Operación Nivel RT Microórdenes 
Ciclo de escritura DIR → ABus saldir 
En memoria A → DBus sala 
A→(DIR) DBus → (ABus) mem, wr 
Tabla 5.5.Ejecución de la instrucción MOV (address), A 
 
Operación Nivel RT Microórdenes 
Transferencia 
interna: DIR → ABus saldir 
DIR→PC ABus → PC mem, wr 
Tabla 5.6. Ejecución de la instrucción JMP address 
 
Fig.5.6. Cronogramas de los ciclos de máquina del INDALO 1.0 
 Ciclo 1 de fetch(*) Ejecución de ADD A,(addr) Ejecución de MOV A,(addr) 
(*) Los ciclos 2º y 3º de fetch son idénticos sustituyendo ckco por ckdirl y ckdirh respectivamente. 
 Ejecución de MOV (addr),A Ejecución de JMP addr 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-21 
Versión 1.0
28-02-2004
 
 Ciclo fetch 1 Ciclo fetch 2 Ciclo fetch 3 Ciclo de ejec 
estado: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 
mem 0 1 1 0 0 1 1 0 0 1 1 0 0 54 bb ∨ 54 bb ∨ 
ckco 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 
reg1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 
ckdirl 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 
ckdirh 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 
saldir 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 
salpc 1 1 1 0 1 1 1 0 1 1 1 0 0 0 0 
cka 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5b 
alu0 0 0 0 0 0 0 0 0 0 0 0 0 0 54 bb ∧ 54 bb ∧ 
wr 0 0 0 0 0 0 0 0 0 0 0 0 0 54 bb ∧ 0 
sala 0 0 0 0 0 0 0 0 0 0 0 0 0 54 bb ∧ 54 bb ∧ 
ckpc 0 0 0 1 0 0 0 1 0 0 0 1 0 54 bb ∧ 0 
rd 0 1 1 0 0 1 1 0 0 1 1 0 0 5b 5b 
rst 0 0 0 0 0 0 0 0 0 0 0 0 0 0 54 bb ∧ 
Tabla 5.7. Estado de las microórdenes durante cada ciclo de reloj 
 
Fig.5.7. Diseño del secuenciador central. 
 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-22 
Versión 1.0
28-02-2004
 
 
Contador 
(DCBA) Mem ckco reg1 
0000 0 0 0 
0001 1 0 0 
0010 1 1 1 
0011 0 0 1 
0100 0 0 0 
0101 1 0 0 
0110 1 0 1 
0111 0 0 1 
1000 0 0 0 
1001 1 0 0 
1010 1 0 1 
1011 0 0 1 
1100 0 0 0 
1101 b + b4 5 0 0 
1110 b + b4 5 0 0 
1111 X X X 
 
 
Fig.5.8. Diseño del circuito combinacional para las microórdenes mem, ckco y reg1. 
 
 
Simplificando mem con Karnaugh: 
 
( )( )( )5b4bBDBABA= +++++mem 
ckco se obtiene directamente: 
ABCD=ckco 
Simplificando reg1 con Karnaugh: 
 
( )CDBBCBD +=+=reg1 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-23 
Versión 1.0
28-02-2004
CAPÍTULO 6: INDALO 2.0 
 
JUEGO DE INSTRUCCIONES (por mnemónico) 
 
Flags Instrucción Descripción Cod. oper 
C Z O S P
Bytes Cic. Reloj 
ADC A, op8 A+op8+Fc→A 1001 0op8 X X X X X 1+A 7+B 
ADD A, op8 A+op8→A 1000 1op8 X X X X X 1+A 7+B 
AND A, op8 A ∩ op8→A 1001 1op8 0 X 0 X X 1+A 7+B 
CLC 0→Fc 0000 1101 0 N N N N 1 5 
CMP A, op8 A-op8→Act. Flags 1000 0op8 X X X X X 1+A 7+B 
DEC reg16 reg16--→reg16 0011 00reg16 N N N N N 1 7 
DEC reg8 reg8--→reg8 1010 00reg8 N X X X X 1 7 
INC reg16 reg16++→reg16 0011 01reg16 N N N N N 1 7 
INC reg8 reg8++→reg8 1010 10reg8 N X X X X 1 7 
JC addr Si Fc=1 PC+rel8→PC 0001 0001 N N N N N 2 7/12 
JMP addr addr→PC 0001 0010 N N N N N 3 15 
JMP reg16 reg16→PC 0001 11reg16 N N N N N 1 5 
JNC addr Si Fc=0 PC+rel8→PC 0001 0011 N N N N N 2 7/12 
JNO addr Si Fo=0 PC+rel8→PC 0001 0100 N N N N N 2 7/12 
JNP addr Si Fp=0 PC+rel8→PC 0001 0101 N N N N N 2 7/12 
JNS addr Si Fs=0 PC+rel8→PC 0001 0110 N N N N N 2 7/12 
JNZ addr Si Fz=0 PC+rel8→PC 0001 0111 N N N N N 2 7/12 
JO addr Si Fo=1 PC+rel8→PC 0001 1000 N N N N N 2 7/12 
JP addr Si Fp=1 PC+rel8→PC 0001 1001 N N N N N 2 7/12 
JS addr Si Fs=1 PC+rel8→PC 0001 1010 N N N N N 2 7/12 
JZ addr Si Fz=1 PC+rel8→PC 0001 1011 N N N N N 2 7/12 
MOV reg8, op8 op8→reg8 011reg8 op8 N N N N N 1+A 7+B 
MOV mem8, reg8 Reg8→mem8 0100 mem8reg8 N N N N N 1+A 7+B 
MOV reg16,op16 op16→reg16 0101 reg16op16 N N N N N 1+A 7+B 
NEG A -A→A 1011 0000 X X X X X 1 7 
NOP No operar 0000 0000 N N N N N 1 5 
NOT A A →A 1011 1000 0 X 0 X X 1 7 
OR A, op8 A ∪ op8→A 1100 0op8 0 X 0 X X 1+A 7+B 
RCL A A <rc< →A 1100 1000 X X X X X 1 7 
RCR A A >rc> →A 1101 0000 X X X X X 1 7 
ROL A A <r< →A 1010 1000 X X X X X 1 7 
ROR A A >r> →A 1010 0000 X X X X X 1 7 
SAR A A >sa> →A 0100 0000 X X 0 X X 1 7 
SBB A, op8 A-(op8+Fc) →A 1101 1op8 X X X X X 1+A 7+B 
SHL A A <s< →A 1110 0000 X X X X X 1 7 
SHR A A >s> →A 1110 1000 X X X 0 X 1 7 
STC 1→Fc 0000 1001 1 N N N N 1 5 
SUB A, op8 A-op8→A 1111 0op8 X X X X X 1+A 7+B 
XOR A, op8 A⊕op8→A 1111 1op8 0 X 0 X X 1+A 7+B 
Nota: 
Para los valores de A y B consultar la tabla op8, mem8 y op16 
En saltos condicionales JC,... se usan 7 ciclos si no se cumple la condición. 
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID 
Facultad-Escuela de Informática 
Departamento de Electrónica y Comunicaciones 
 
 
Pag.-24 
Versión 1.0
28-02-2004
 
 
LÍNEAS DE CONTROL DE LA 
ALU. 
 
Operación alu3 alu2 alu1 alu0
ENT2 0 0 0 0 
No usada 0 0 0 1 
ENT1 + ENT2 + Fc 0 0 1 0 
ENT1 ∩ ENT2 0 0 1 1 
ENT2 -- 0 1 0 0 
ENT2 ++ 0 1 0 1 
Ca2(ENT1) 0 1 1 0 
Ca1(ENT1) 0 1 1 1 
ENT1 ∪ ENT2 1 0 0 0 
ENT1 <rc< 1 0 0 1 
ENT1 >rc> 1 0 1 0 
ENT1 + Ca2(ENT2 + Fc) 1 0 1 1 
ENT1 <r< 1 1 0 0 
ENT1 >r> 1 1 0 1 
ENT1 >sa> 1 1 1 0 
ENT1 ⊕ ENT2 1 1 1 1 
 
JUEGO DE INSTRUCCIONES 
(por código de operación). 
Cod. Oper Instrucción Bytes 
0000 0000 NOP 1 
0000 1001 STC 1 
0000 1101 CLC 1 
0001 0001 JC addr 2 
0001 0010 JMP addr 3 
0001 0011 JNC addr 2 
0001 0100 JNO addr 2 
0001 0101 JNP addr 2 
0001 0110 JNS addr 2 
0001 0111 JNZ addr 2 
0001 1000 JO addr 2 
0001 1001 JP addr 2 
0001 1010 JS addr 2 
0001 1011 JZ addr 2 
0001 11reg16 JMP reg16 1 
0011 00reg16 DEC reg16 1 
0011 01reg16 INC reg16 1 
0100 0000 SAR A 1 
0100 mem8reg8 MOV mem8, reg8 1+A 
0101 reg16op16 MOV reg16,op16 1+A 
011reg8 op8 MOV reg8, op8 1+A 
1000 0op8 CMP A, op8 1+A 
1000 1op8 ADD A, op8 1+A 
1001 0op8 ADC A, op8 1+A 
1001 1op8 AND A, op8 1+A 
1010 0000 ROR A 1 
1010 00reg8 DEC reg8 1 
1010 1000 ROL A 1 
1010 10reg8 INC reg8 1 
1011 0000 NEG A 1 
1011 1000 NOT A 1 
1100 0op8 OR A, op8 1+A 
1100 1000 RCL A 1 
1101 0000 RCR A 1 
1101 1op8 SBB A, op8 1+A 
1110 0000 SHL A 1 
1110 1000 SHR A 1 
1111 0op8 SUB A, op8 1+A 
1111 1op8 XOR A, op8 1+A 
OPERANDOS DE 8 BITS. 
 
Cód. Mnem. Dirección del operando A B 
000 (addr) 
La dirección del operando 
aparece en los 2 bytes 
siguientes al Cod. oper. 
2 11 
001 A Operando en el registro A 0 0 
010 B Operando en el registro B 0 0 
011 C Operando en el registro C 0 0 
100 dat8 Valor inmediato viene en el byte siguiente al Cod. oper 1 3 
101 (BC) Operando en la dirección apuntada por BC 0 1 
110 (X+rel8) Operando en la dirección apuntada por X+ rel8 1 6 
 
Reg8 Mem8 A B 
01 A 00 (addr) 2 11 
10 B 01 (BC) 0 1 
11 C 10 (X+rel8) 1 6 
 
 
OPERANDOS

Continuar navegando