Uploaded by insinategamer

TP7 ModeloDeEjecucion Respuestas

advertisement
Arquitectura de Computadores
UTN - FRBA
DISI
Práctico Nº 7: Modelo de Ejecución
Campus/Medrano
TP No 7: Modelo de Ejecución
a. Responder:
1.
Explicar, para todos los registros asociados a datos de la computadora X, cuál será su tamaño. Idem para los
registros asociados a direcciones.
2.
Se explicó que la memoria de la Computadora “X” tiene una capacidad de 4 KB Palabras de 16 bits cada una. (Es
decir 4096 palabras de 16 bits cada una)
a. Indicar cuál sería el tamaño de las direcciones de la computadora “X” si la memoria tuviera una
capacidad de 64 KB palabras de 16 bits cada una.
64= 26
K = 210
(6 + 10) = 16 bits para direccionar una memoria de 64 KB
3.
b.
Cuál sería el rango de direcciones de “X” (especificar en hexadecimal y en decimal)
0000h – FFFFh Dec: 0 – 65535
Tengo 65536 direcciones posibles
c.
Cómo quedaría el formato de las instrucciones de “X” con este nuevo rango de direcciones de memoria
COP = 4 bits
Data = 16 bits
Para las
DATA
a.
b.
c.
d.
e.
siguientes instrucciones de la computadora “X”, indicar los bits correspondientes al COP y a la parte
000 LDA A10
001 ANA A11
002 CMA
003 STA A12
004 HLT
1
5
8
3
0
A10
A11
xxx
A12
xxx
b. Resolver:
4.
Para las instrucciones del ejercicio anterior, asumir que se trata de un programa a ejecutar y además que: A10 =
A35E; A11 = A3A1. Explicar que hace este programa y cuál será el valor final del registro Acumulador, el MDR,
la dirección de memoria A12, y del registro IP
AC: A35E
AC <- A35E AND MDR:A3A1
AC: A300
AC: ^AC
AC: 5CFF
A12: 5CFF
MDR: 5CFF
IP: 005
Arquitectura de Computadores
UTN - FRBA
DISI
5.
Campus/Medrano
Escribir un programa en Assembler de la computadora X que permita: sumar 2 números que se encuentran en las
direcciones de memoria AA1 y AA2. Luego este programa debe sacar el promedio de estos dos valores y
almacenar el resultado obtenido en la dirección de memoria AA3 y mostrar dicho resultado por pantalla.
a. Escribir dicho programa en su forma taquigráfica hexadecimal
LDA AA1
ADA AA2
SHR
STA AA3
OUT
HLT
6.
Práctico Nº 7: Modelo de Ejecución
1AA1 (forma taquigráfica hexadecimal)
2AA2
AXXX
3AA3
FXXX
0XXX
Escribir un programa en Assembler de la computadora X que permita: leer un dato ingresado por el usuario desde
el teclado, sumarlo a un valor almacenado en la dirección de memoria A10 y multiplicarlo por 5. Finalmente se
debe almacenar el resultado final en la dirección A11
Respuesta: Se pide hacer básicamente (Número ingresado por usuario + Número en memoria)= suma; y luego hay
que hacer (suma x 5). Voy a necesitar guardar el resultado de la suma porque para poder multiplicar por 5 tengo
que hacer [(Suma x2)x2]+ suma (Ver temas vistos en clases sobre cómo hacer multiplicaciones)
INP (Permite el ingreso de un dato por parte del usuario y lo carga en el acumulador)
ADA A10 (suma al acumulador el dato que está en A10)
STA A11 (guarda el resultado de la suma en A11)
SHL (Divide por 2 el resultado de la suma)
SHL (vuelve a dividir por 2)
ADA A11 (suma el número guardado en A11 para lograr hacer la multiplicación por 5)
STA A11
HLT
7.
Escribir un programa en Assembler de la computadora X que permita: Comparar dos números que están
almacenados en memoria en las direcciones A10 y A11.
a. Se deben asignar direcciones de memoria a las instrucciones, teniendo en cuenta que el programa
principal empieza en la dirección 000 y la dirección a la que debe saltar el primer salto condicional será
00A
b. Si ambos números son iguales el programa debe saltar a un código que ejecute un AND entre el valor
almacenado en A12 y el valor resultante de la resta y almacene el valor final en la dirección A14
c. Si el valor almacenado en A11 es mayor entonces el programa debe saltar a un código que realice la suma
entre el valor de A10 y otro valor almacenado en A13 y almacene el resultado en A14
d. Si el valor almacenado en A10 es mayor entonces el programa debe saltar a un código que almacene el
resultado obtenido en A14 y lo muestre en pantalla
000
001
002
003
004
005
006
LDA A11
CMA
INC
ADA A10
SZA 00A (Si el flag Z se activó ambos operandos son iguales entonces saltar a 00A)
SNA 00D (Si el signo es negativo, el sustraendo, dato en A11 es mayor, saltar a 00D)
JMP 012 (Si no entró por las condiciones anteriores entonces el dato en A11 es menor)
Arquitectura de Computadores
UTN - FRBA
DISI
00A ANA A12
00B STA A14
00C HLT
00D
00E
00F
011
LDA A10
ADA A13
STA A14
HLT
012 STA A14
013 OUT
014 HLT
Práctico Nº 7: Modelo de Ejecución
( Si ambos operandos son iguales ejecutar este código)
(Ejecutar si Sustraendo > Minuendo)
(Ejecutar si Sustraendo < Minuendo)
Campus/Medrano
Download