UTNianos

Versión completa: [Arquitectura][Aporte] Final 16/02/2009
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Este acaba salir de la fotocopiadora del campus.
[attachment=1]
[attachment=0]

Respecto a la resolucion de la parte 2 , que pregunta cual es el valor de AX creo que hay un error ahi.
mov ax,0B
sub ax,FF
1) ax es de 16 bits , por lo tanto luego de
mov AX,0B
queda AX=000B
2) la resta
SUB AX,FF
es hacer:
AX <- AX - 0xFF
3) como estamos laburando en 32 bits , al hacer complemento a 2 , C2 , a 0x00FF nos da:
0xFF01 , que es lo que deberemos sumar a AX para obtener la resta que pide,
es decir:
0x000B + 0xFF01 = 0xFF0C
por lo tanto
AX=FF0C

Que dicho sea de paso , es negativo... cosa correcta.
Saludos!
Muy bueno el aporte!!!

Lo seguimos en ingenieria-en-sistemas-de-informacion-f47/final-10-02-10-t3270.html ??? avisen si es lo mismo así cierro y no nos llenamos de temas parecidos =D
Hola Aye! no, este es otro final, del 2009. por eso cree otro post, para que no se mezclen las resoluciones y comentario.
Preferis que unifiquemos todo en un post?
Besos.
Ale.
Perdón ale, leí cualquiera...

Lo dejo abierto, muchas gracias por el aporte, me va a venir de pelos thumbup3
Hola gente, yo rendí el examen del 16/12/09 y lo desaprobé por la parte teórica. En la pregunta 6 respondí lo mismo que dice en la resolución, pero el profesor nos dijo a mí y a otro chico que estaba mal justificado :S :fuckyou:
Laus,
mira, la facu es una ruleta, tenes que estudiar y tener suerte.
en este caso , el termino "pagina sementada" es incorrecto, porque lo que se pagina es el semento. es decir un segmento tiene paginas. la expersion correcta es "segmento paginado"
Como la pregunta ya tiene un termino que no existe, porque es incorrecta esa denominacion, es falso.

Los mejores Exitos en la proxima que te presentes.
Que la ruleta este de tu lado!!! =P
Sisi, gracias alexander!!! La cosa es q la suerte nunca está de mi lado pero ya estoy acostumbrada! Veremos hoy que pasa...
Lo de segmento paginado lo sé, lo que no entiendo es porq el tipo nos dijo q estaba mal justifivado :S
alguien me podria explicar el ultimo punto de la parte 2 , en de " litlle-endian"
se agradece !!!!
La definición de little endian es : " el byte de menor peso se almacena en la dirección más baja de memoria "
Si te dan : 0 00 00 40 3F y te dicen que es little endian lo tenés que invertir, porque en este caso el byte de menor peso es 3F, entonces leyendo la memoria de arriba hacia abajo te queda 3F 40 00 00 0.

En concreto, te dicen que está en little endian, dalo vuelta. Si dijeran que está en big endian, queda tal cual está, porque big endian : "el byte de mayor peso se almacena en la dirección más baja de memoria".

Una vez que lo diste vuelta, lo pasas a binario. El primer bit (contando de izq a derecha) es el bit de signo (1 neg, 0 pos). Como es 0 el numero que estas buscando es positivo.

Paso siguiente : contas 8 bits a partir del primero, en este caso 01111110. Ok, restas esos 8 bits al número 01111111 (127 en decimal seria). Entonces queda : 01111110 - 01111111 = -1 (ya lo pasé a decimal). Este resultado es el exponente.

Bien, siguiendo con el algoritmo: el número sería 1,1 x 10^-1 . El primer 1 de este numero va siempre (es implícito). Siempre va a haber un 1 al comienzo. El segundo 1 (,1) sale de la mantisa. La mantisa es la parte que te queda después de esos 8 bits que contaste para sacar el exponente. Como es 1000000..., ponemos 1 nada más.

Finalmente el numero es 1,1 x 10 ^-1 . Lo tenemos que pasar a decimal. Entonces : 1,1 x 10 ^ -1 = 0,11 (corremos la coma un lugar hacia la izq).

0,11 = 0, 75 ya que 0 * 2 ^ 1 + 1 * 2 ^-1 + 1 * 2 ^-2 = 0,75

Y ahí te queda el número!
IsaacNewton escribió:La definición de little endian es : " el byte de menor peso se almacena en la dirección más baja de memoria "
Si te dan : 0 00 00 40 3F y te dicen que es little endian lo tenés que invertir, porque en este caso el byte de menor peso es 3F, entonces leyendo la memoria de arriba hacia abajo te queda 3F 40 00 00 0.

En concreto, te dicen que está en little endian, dalo vuelta. Si dijeran que está en big endian, queda tal cual está, porque big endian : "el byte de mayor peso se almacena en la dirección más baja de memoria".

Una vez que lo diste vuelta, lo pasas a binario. El primer bit (contando de izq a derecha) es el bit de signo (1 neg, 0 pos). Como es 0 el numero que estas buscando es positivo.

Paso siguiente : contas 8 bits a partir del primero, en este caso 01111110. Ok, restas esos 8 bits al número 01111111 (127 en decimal seria). Entonces queda : 01111110 - 01111111 = -1 (ya lo pasé a decimal). Este resultado es el exponente.

Bien, siguiendo con el algoritmo: el número sería 1,1 x 10^-1 . El primer 1 de este numero va siempre (es implícito). Siempre va a haber un 1 al comienzo. El segundo 1 (,1) sale de la mantisa. La mantisa es la parte que te queda después de esos 8 bits que contaste para sacar el exponente. Como es 1000000..., ponemos 1 nada más.

Finalmente el numero es 1,1 x 10 ^-1 . Lo tenemos que pasar a decimal. Entonces : 1,1 x 10 ^ -1 = 0,11 (corremos la coma un lugar hacia la izq).

0,11 = 0, 75 ya que 0 * 2 ^ 1 + 1 * 2 ^-1 + 1 * 2 ^-2 = 0,75

Y ahí te queda el número!

gracias maquina!
URLs de referencia