UTNianos

Versión completa: Ayuda con parcial de arquitectura de pc
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola, este lunes tengo el segundo parcial de arquitectura, la materia la curso con José Bellesi, muchos de acá ya lo conocen, un desastre la cursada. Vi que otros usuarios están en la misma que yo. Siempre da un modelo de parcial una semana antes y el parcial que toma es igual solo que le cambia los números. Acá me toma solo Assembler, o por lo menos aparece solo eso en el parcial modelo. Pero explico el tema muy así nomas y tengo un par de dudas. Acá subí un modelo de parcial que nos dio. Si alguien lo puede resolver u hojear para darme una mano a mí y a varios que estamos medios complicados se los agradecería.

[img]<script src='http://img843.imageshack.us/shareable/?i=11012i.jpg&p=tl' type='text/javascript'></script><noscript>[Imagen: 11012i.jpg]</noscript>[/img]


1) En este punto tengo que nada más pasar a decimal el número que está en hexadecimal donde dice A1, A2, A3, A4?
3) Acá tengo que seguir todo el programa y completar los registro de arriba a la derecha no?
4) Cuando habla de A y de B a que números hace referencia?
6)En este caso, es después del primer salto o después que haya completado el ciclo de todos los saltos?
Gracias y espero que puedan ayudarme.
1) No. Son enteros, números signados, entonces el primer bit no es parte del número sino que es el signo.
El tema es que como no te aclara no sé si hay que hacer complemento a 1, a 2 o si es sólo signo-valor, si es esto último pasás todo a binario, y convertís a decimal todo menos el primer bit. Si el primer bit es 1 era negativo y sino positivo.

Por ejemplo el 2001 EE:

11101110 es -110

2) Acá si convertís directamente.

3) Sí, hasta CMP AL,[BX]

4)
MOV BX, 2001.
B vale 2001.

MOV AL, [BX]
A la parte baja de A le estoy metiendo el valor que está en la dirección 2001 (EE). La alta debería estar en 0, así que A vale:
00EE

INC BX
Ahora B vale 2002

Lo que no sé es si quiere que compares AX con BX o si quiere el resultado de esta comparación(me parece que lo segundo sería lo más lógico):
CMP AL,[BX]
Acá compara 00EE con lo que está en 2002 (8A)

6) Supongo que del primer salto
(05-11-2011 15:54)Anirus escribió: [ -> ]1) No. Son enteros, números signados, entonces el primer bit no es parte del número sino que es el signo.
El tema es que como no te aclara no sé si hay que hacer complemento a 1, a 2 o si es sólo signo-valor, si es esto último pasás todo a binario, y convertís a decimal todo menos el primer bit. Si el primer bit es 1 era negativo y sino positivo.

Por ejemplo el 2001 EE:

11101110 es -110

2) Acá si convertís directamente.

3) Sí, hasta CMP AL,[BX]

4)
MOV BX, 2001.
B vale 2001.

MOV AL, [BX]
A la parte baja de A le estoy metiendo el valor que está en la dirección 2001 (EE). La alta debería estar en 0, así que A vale:
00EE

INC BX
Ahora B vale 2002

Lo que no sé es si quiere que compares AX con BX o si quiere el resultado de esta comparación(me parece que lo segundo sería lo más lógico):
CMP AL,[BX]
Acá compara 00EE con lo que está en 2002 (8A)

6) Supongo que del primer salto

En el punto 1 creo que tengo que pasarlo directamente a decimal y ahi tengo el natural, despues hago el complemento de eso y ese es el numero negativo osea en enteros.
En el 6 a que salto de referis, por que hay 2, el JG, que salta si es mayor, y el JNZ que salta si no es 0.
Por ultimo, la 5 no la entiendo, nose a que hace referencia.
Muchas gracias por responder.
Yo creo que se refiere al primer salto, porque en el 4 te pregunta por el resultado de la comparación, y en el 5 te pregunta si saltó(ya que antes te preguntó por la comparación sería lógico que la pregunta fuera por el JG) y en el 6 en donde quedó.
Igual pensá que las dudas sobre enunciado se pueden preguntar durante el parcial.
GENTEEEE YO RINDO CON PATRICIA QUIROGA EL JUEVES!!! ALGUIEN YA RINDIO CON ELLA?! ME LA CRUCE HACE UNAS HORAS Y ME DIJO QUE IBA A TOMAR UN PARCIAL...ANY IDEA? QUE LES TOMO?!
A ver si arrojamos agua sobre esto..

1)

Enteros con signo

2001= -18
2002= -118
2003= -62
2004= -128

2)

Naturales

2001= 238
2002= 138
2003= 194
2004= 128

3)

Suma para restar ultima comparación

A = 10001010 (8A)
B = 01111111 (80) C2
--------------
C0--1|00001010

C=0 S=0 Z=0 V=0

4) A < B considerando enteros con signo por V= 0

5) Si se realizara el Salto porque hace la comparación de A= 8A con B = 80

6) Después del salto condicional la IP es 0112

7) JB Fijandose que C= 1

8) A > B considerando naturales correcto por C = 0

9) Al finalizar el programa

Enteros con signo = -128 Naturales = 128

10) JB consulta C = 1


Comparar los resultados y corregir en caso de que haga falta

Saludos
(15-12-2011 11:38)Damian Bogado escribió: [ -> ]A ver si arrojamos agua sobre esto..

1)

Enteros con signo

2001= -18
2002= -118
2003= -62
2004= -128

2)

Naturales

2001= 238
2002= 138
2003= 194
2004= 128

3)

Suma para restar ultima comparación

A = 10001010 (8A)
B = 01111111 (80) C2
--------------
C0--1|00001010

C=0 S=0 Z=0 V=0

4) A < B considerando enteros con signo por V= 0

5) Si se realizara el Salto porque hace la comparación de A= 8A con B = 80

6) Después del salto condicional la IP es 0112

7) JB Fijandose que C= 1

8) A > B considerando naturales correcto por C = 0

9) Al finalizar el programa

Enteros con signo = -128 Naturales = 128

10) JB consulta C = 1


Comparar los resultados y corregir en caso de que haga falta

Saludos

Si, creo que maso menos esta bien. Acordate siempre que si el programa busca el menor, tene en cuenta a los numeros como signo, es decir como si fueran negativos.
URLs de referencia