You are on page 1of 4

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS

FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA

CURSO: SISTEMAS DIGITALES EXAMEN FINAL 2008-I

1. Que elementos necesariamente debe tener un procesador y porque?

Para ejecutar operaciones, debe tener un ALU (necesariamente) para poder


procesar (aritmética y lógicamente) los datos que se ingrese y el registro
principal el acumulador.

Para buscar las operaciones necesita un registro que direccione las instrucciones
en memoria llamado IP o PC (Instruction Pointer o Program Counter) y un
decodificador de instrucciones, ID.

2. Realice un programa que calcule


Hay varias maneras de efectuarlo, aquí muestro una de ellas, el registro
resultante voy a tomar al BX.
Usando la división:
Nemónico  DIV Operando
Proceso  AL= AX/Operando y Residuo en AH

Datos
Dirección Inicial: 40A25h
Dirección Final : 41DC9h
Son direcciones físicas pero para el programa necesitamos direcciones logicas
que podrían ser por facilidad:
 Dirección Inicial: CS=40A2h, IP=0005h.
 Dirección Final : CS=40A2h, IP=13A9h.
Lo que deben cumplir es la formula:
Dirección Física = CS*10+IP
Es decir, que existen varias soluciones, como esta otra:
 Dirección Inicial: CS=4000h, IP=0A25h.
 Dirección Final: CS=4000h, IP=1DC9h.

Usaremos la primera alternativa indicada, observar que debe ser el mismo


segmento para que no haya problema.

Inicio: MOV AX, 40A2


MOV DS, AX
MOV BX, 0
MOV SI, 0005
sgte: MOV AL, [SI]
MOV AH, 0
MOV DL, 6
DIV DL
CMP AH, 0
JE no_es
INC BX
No_es:INC SI
CMP SI, 13AA
JNE sgte
Fin: INT 20

3. Efectúe un programa que se demore 05 segundos sabiendo que el reloj utilizado


es de 120MHz. (04 ptos.).

td= 05seg.

Programa NC
Inicio: MOV A, nn 5
decaa: MOV B, FFFFh 5
decre: DEC B 4
JNZ decre 7
DEC A 4
JNZ decaa 7
Fin: INT 20

Calculando los ciclos de demora, Ncd:

Ncd=NCmovA+nn*(NCmovB+65535*(NCdecB+NCjnzDecre)+NCdecA+NCjn
zDecaa)

Ncd=5+nn*(5+65535*(4+7)+4+7)

Calculo de Tiempo de cada ciclo, tc:

f=120MHz  tc=1/f=1/(120*(10**6))=8.333 nanoseg.

Ademas, tenemos:

td= Ncd*tc

Entonces:

05seg.= (5+nn*(5+65535*(4+7)+4+7))*8.333nanoseg.

De donde, nn=832 decimal= 340h

4. Si un procesador puede direccionar una memoria RAM de 256MB y una ROM


de 12MB, ¿cuáles terminales son necesarios y que elementos internos deben
variar? (04 ptos.).

Terminales:
Memoria total = 256MB + 12MB = 268MB
 2**29
29 bits de dirección
De A28 hasta A0.
Además de MREQ (memory required o requiere memoria), RD(read) y
WR(write), señales que pueden estar en ingles o español, negada o sin negar.

Elementos internos:
Code Segment (CS) o Segmento de código y Puntero de Instrucción o IP, donde
este último debe ser de mínimo 29 bits.

5. Describa las señales que hacen que un procesador no continúe con la secuencia
de un programa. (03 ptos.).

Las señales de hardware son:


 RESET: Reinicia al procesador.
 HALT: Detiene al procesador y solo sale de ese estado al efectuar un
RESET o INTERRUPCION.
 Interrupción que puede ser enmascarada (INT) o no enmascarada (NMI),
en los dos casos salta a continuar con algún programa en especifico.

6. ¿Cuál es la secuencia que sigue la instrucción CALL y RET? Dé un ejemplo. (03


ptos.).
La secuencia de:

1. CALL dircall
 Guarda la dirección siguiente de retorno (el IP, correspondiente a la
instrucción que sigue al CALL), en la pila o stack, por lo tanto el
puntero de pila se decrementa en dos (SP <= SP-2);
 Salta a la dirección indicada por el CALL (dircall) de donde continúa
la ejecución.

2. RET
 Recupera de la Pila o stack la dirección de retorno, con lo que el
puntero del stack se incrementa en dos (SP<= SP+2).
 Salta a la dirección recuperada de donde continua la ejecución.

Ejemplo:

CS:IP

1250:0456 CALL 758


1250:0459 MOV D,A
:
:

1250:0758 MOV A,B inicio de subrutina


ADD A,C
:
:
1250:0951 RET fin de subrutina

SS:SP (PILA o STACK)


1250:FFF8 46
1250:FFF9 B5
1250:FFFA A6
1250:FFFB 27
1250:FFFC 25
1250:FFFD 38
1250:FFFE F4
1250:FFFF 3B

Al inicio de ejecución consideramos:


CS=1250 IP=0456 SS=1250 SP=FFFC
Esta a punto de ejecutar la instrucción CALL ubicada en 0456.

Al ejecutar el CALL:
 Guarda IP de instrucción siguiente, 0459. Cambiando el SP a FFFA.
 Salta a la dirección 0758

Cambiando.
SS:SP (PILA o STACK)
1250:FFF8 46
1250:FFF9 B5
1250:FFFA 04
1250:FFFB 59
1250:FFFC 25
1250:FFFD 38
1250:FFFE F4
1250:FFFF 3B

Luego que sigue las instrucciones va a encontrar el fin de la subrutina, RET,


ejecutando:
 Recupera el IP guardado, 0459, cambiando el SP a FFFC, y
 Salta a 0459.

El Profesor

You might also like