UTNianos

Versión completa: [APORTE] Final arquitectura de computadores 22/12/2016
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola! Dejo el final que tomaron la última fecha de diciembre del año pasado. Si alguno quiere subir las respuestas, se agradecería mucho. Yo pongo lo que creo que va, pero no es para nada seguro porque no lo rendí.

Parte teórica:
1. caché de datos (creo que la otra es la de etiquetas)
2. Frame o marco
3. ni idea
4. Page fault, división por cero. Cuando dice cuantas excepciones se refería a cuantos tipos de excepciones, que son 3 (trampas, faltas y abortos)
5. BX y EBX
6. enmascarables
7. INT0?
8. Resta, flags: C, Z y no sé si S también

Parte práctica:
1. (este lo dudo mucho)
a. 2ˆ12
b. 37B+10=38B
c. 00031+37B=003AB (siento que ni en pedo es así)

2. doble palabra son 32 bits
a. 2ˆ32
b. creo que es 2ˆ16 porque tengo 2 bytes de segmento y los otros 2 de desplazamiento
c. 8? supongo que 8 porque creo que son 4 bits por digito en BCD

3.
a. AX queda en 32
b. CX queda en 0
c. BX queda en 0

link a la imagen del final por si no se ve http://imgur.com/a/LJNeO

[Imagen: LJNeO]
No se ve el enunciado del final =(
Resubí la imagen del final (no se ve), así podemos corregirlo/debatirlo entre todos
(06-02-2017 23:08)guilletala escribió: [ -> ]No se ve el enunciado del final =(

ahí puse el link porque no se por qué no se sube
(06-02-2017 22:04)mich escribió: [ -> ]Parte práctica:
1. (este lo dudo mucho)
a. 2ˆ12
b. 37B+10=38B
c. 00031+37B=003AB (siento que ni en pedo es así)

El primero está bien, si tenés 3 caracteres en hexa, podés generar 12 bits de combinaciones, es decir, \[2^{12}\], lo cual significa que el tamaño de página es 4KB.

El segundo, ¿Podrías comentar cómo llegaste a esa solución?. Lo que yo creo es que la respuesta depende de si se quiere obtener la décima posición respecto de 37B, o si es el desplazamiento para obtener la décima posición (este último creo que sería el caso que están preguntando, o al menos el que me parece más lógico). Para el primer caso, sería 37B + 00A (recordemos que el valor 10 en decimal es A en hexa), y para el segundo caso sería simplemente 00A (si 37B es un desplazamiento, entonces el desplazamiento para la décima posición es 00A).

El tercer punto, por lo que ví en otros finales, la dirección física cuando es en memoria paginada siempre tiene el formato [Página][Desplazamiento] (formando 32 bits), fijate que te dicen que la página es la 00031, y nos dijeron que el desplazamiento era 37B, si juntos estos dígitos nos da 8 dígitos hexas (32 bits), con lo cual, quedaría demasiado justo como para formar la dirección física 0003137B. Entonces vos con 00031 (hexa) indicás una página, y con los últimos 12 bits (o 3 caracteres hexas, en este caso 37B) indicarías una posición específica dentro de esa página donde va almacenado un byte. Fijate que cuadra todo porque por cada página podés elegir una posición que va desde 000 hasta FFF (4 KB, justo el tamaño de página).

Espero que se haya entendido, y que haya aclarado un poco.

Si dije alguna burrada, corrijanme!
(06-02-2017 23:59)Inu escribió: [ -> ]
(06-02-2017 22:04)mich escribió: [ -> ]Parte práctica:
1. (este lo dudo mucho)
a. 2ˆ12
b. 37B+10=38B
c. 00031+37B=003AB (siento que ni en pedo es así)

El primero está bien, si tenés 3 caracteres en hexa, podés generar 12 bits de combinaciones, es decir, \[2^{12}\], lo cual significa que el tamaño de página es 4KB.

El segundo, ¿Podrías comentar cómo llegaste a esa solución?. Lo que yo creo es que la respuesta depende de si se quiere obtener la décima posición respecto de 37B, o si es el desplazamiento para obtener la décima posición (este último creo que sería el caso que están preguntando, o al menos el que me parece más lógico). Para el primer caso, sería 37B + 00A (recordemos que el valor 10 en decimal es A en hexa), y para el segundo caso sería simplemente 00A (si 37B es un desplazamiento, entonces el desplazamiento para la décima posición es 00A).

El tercer punto, por lo que ví en otros finales, la dirección física cuando es en memoria paginada siempre tiene el formato [Página][Desplazamiento] (formando 32 bits), fijate que te dicen que la página es la 00031, y nos dijeron que el desplazamiento era 37B, si juntos estos dígitos nos da 8 dígitos hexas (32 bits), con lo cual, quedaría demasiado justo como para formar la dirección física 0003137B. Entonces vos con 00031 (hexa) indicás una página, y con los últimos 12 bits (o 3 caracteres hexas, en este caso 37B) indicarías una posición específica dentro de esa página donde va almacenado un byte. Fijate que cuadra todo porque por cada página podés elegir una posición que va desde 000 hasta FFF (4 KB, justo el tamaño de página).

Espero que se haya entendido, y que haya aclarado un poco.

Si dije alguna burrada, corrijanme!

Para el 1.b tenés razón, quise hacer lo de 37B+00A y no me di cuenta de ponerlo en hexa, después de tanto estudio estoy hiper quemada. Para mi es el primer caso que planteas vos.

Para el 1.c me gusta mucho tu respuesta y creo que es la correcta
La practica es igual al del 11/12/2013, y esta resuelto en la gloria
Cita:ahí puse el link porque no se por qué no se sube

[attachment=14835]

Subo lo imagen, así queda en el foro.
Hola, podrías hacer el seguimiento de ejer de assembler, no entiendo como llegas a cx y bx = 0

saludos y gracias.
cx baja por el loop, que loopea hasta que cx es 0.
bx en el mov se le pone lo que hay en ax, pero abajo en el and, es un and logico, y bx lo setea en 0 porque es falso (BX <> 0F)
URLs de referencia