You are on page 1of 10

TRABAJO PRCTICO N3

ENTEROS

Alumno: Scheifler Mariano


Carrera: Ingeniera en sistemas informticos.
Materia: Sistemas de computacin I
Docente: Mario Ginzburg
Ao: 2016
Jueves turno noche

TRABAJO PRACTICO N3 INTEGRADOR SOBRE DATOS NUMERICOS QUE


SON ENTEROS.
Este TP tiene un desarrollo similar al anterior sobre magnitudes. Por tal motivo se ha
conservado la numeracin indicativa de los pasos a realizar, a los efectos de no repetir
explicaciones para cada paso, dadas en el TP anterior sobre magnitudes, que debe tenerse a
mano. Solo aparecen indicaciones cuando hay que analizar alguna variante en relacin
con el citado TP anterior. Para realizarlo se debe consultar en la PC por Dentro (6ta ed)
pag 165
PARTE I
Se ha tipeado en lenguaje de alto nivel.

D.N.I.: 30.591.206

MAGNITUDES
R=P + Q - T
P= 305
Q= 06
T= 912
(valores en base diez)
En relacin con el TP2 se debe modificar si es necesario P, Q T para obtener al menos un
resultado negativo. Cualquier duda consultar al docente para que l apruebe la eleccin de un
nuevo valor con su firma.
1) No se realiza para integres
2a) dem TP anterior (usar las mismas direcciones del TP anterior)
2)- (dem TP anterior) indicar como deja el compilador la zona de datos e
instrucciones. Para ello:
2a)- Reservar para cada variable dos posiciones de memoria, a partir de la direccin
dada por las primeras 4 cifras del DNI (suponiendo que es un numero en hexa,
aunque en realidad sea decimal, o sea no hay que pasarlos de decimal a hexa)
indicando luego las direcciones que siguen a la primera. Usar para la primera
direccin las 4 primeras cifras del DNI de cada alumno, considerndolas como un
nmero hexadecimal. Los valores XX de P, Q y T se determinarn en 2c).
3059

305A
305B

31

305C

01

305D

06

305E

00

305F

90

3060

03

P
Q
T

2b) (dem TP 2) En funcin de las direcciones determinadas en 2a, y a partir


de la direccin dada por las ltimas 4 cifras del DNI, completar al lado de XX
que aparecen las direcciones de P, Q y T en la zona de instrucciones de la tabla
siguiente, de modo que la sentencia R = R = P + Q - T quede traducida como lo
hara un supuesto compilador. Se indican los cdigos de operacin de dichas
instrucciones correspondientes a Intel. Tomar como referencia la pagina 1-149
citada, pero escribir en hexa. la direccin de la primera instruccin (de cdigo de
operacin A1 y direccin XX de la variable P). El alumno debe tomar como
primera direccin las ltimas 4 cifras de su DNI, considerndolas como numero
hexadecimal.
2c)- Pasar a binario natural los valores de P, Q y T tomados del DNI y considerados
como nmeros en base diez (usar el mtodo de las pesas, exigido en el parcial). A
cada nmero binario as obtenido agregarle ceros a la izquierda hasta completar el
formato de 16 bits correspondiente a dos posiciones consecutivas de memoria.
Luego pasarlos a hexa, de forma que resulte un nmero de 4 smbolos. Completar
las siguientes lneas.
P = 305
(en decimal) =
(pasar a hexa)
Q = 06
=
T = 912
=

0000 0001 0011 0001

(pasar a binario) = 0131

0000 0000 0000 0110


0000 0011 1001 0000

= 0006
= 0390

2d)- Escribir los valores en hexa hallados en 2b para P, Q y T en las posiciones de


memoria reservadas en 2a, al lado de XX. Tener presente que para el Intel se
necesita escribir los dos smbolos menos significativos en la direccin ms baja, y
los restantes en la direccin siguiente. Por ejemplo, si P = 032A, escriba primero 2A
y abajo 03, (cmo se ejemplifica en la pgina 1-149 antes citada).
Pregunta: Por qu no debe escribirse a esta altura el valor de R?
Respuesta Porque an no empezamos la etapa de ejecucin, en la direccin de R
puede haber cualquier valor. Recin estamos en lo que sera la etapa de
interpretacin/compilacin.

.
2e) Comparar el paso 2d) de este TP con el mismo paso del TP anterior.
Qu conclusiones resultan, y por qu los cdigos de operacin son iguales en el TP2 y
TP3?
Son los mismos porque la UAL trabaja con Naturales.

3) dem TP anterior, indicando adems el valor de los flags SZVC cuando interviene la
UAL
Suponiendo que se ejecutan las instrucciones en 2d, indicar en hexa como
queda el registro AX luego de cada instruccin. En caso de que una instruccin
ordene una suma o resta, efectuarla en binario, como la UAL, en 16 bits, y
verificar que el resultado sea el esperado. Esto es pasar el resultado binario a
decimal y comprobar que el resultado de la cuenta efectuada en decimal coincida
con el resultado binario pasado a decimal. Completar las siguientes lneas para AX
en hexa:

I1

I2

I3

I4

P
Q
P+Q

1206
1207
1208
1209
120A
120B
120C
120D
120E
120F
1210
1211
1212
1213

A1

5B
30
03

Despus de ejecutar I1 resulta AX =...0131.....(en hexa) = P


La suma en binario (16 bits) que hace la
UAL, que permite determinar este valor
de AX es (realizarla):

06

5D
30
2B
06

5F
30
A3

59
30

= 0000 0001 0011 0001


+
= 0000 0000 0000 0110
= 0000 0001 0011 0111
S=0

Despus de ejecutar I2 resulta AX = 0137 ...

Z= 0

V= 0 C= 0

.(en hexa) = P + Q

ANTES DE SEGUIR PASAR EL RESULTADO DE P + Q DE BINARIO A DECIMAL Y


VERIFICAR QUE ES EL VALOR ESPERADO (Esta verificacin se pide en el parcial).

La resta en binario (16bits) como lo hace la UAL, que permite determinar este valor
de AX se puede presentar como sigue:
4

P+Q=
0111

0000 0001 0011


+

T = 0000 0011 1001 0000

T con bits invertidos =


Sumar 1

P+QT =
S=

Z= 0

V= 0

1111 1100 0110 1111


_______________________1_
1111 1101 1010 0111

C = 1

Despus de ejecutar I3 resulta AX =... FDA7 ....

=P+Q-T

ANTES DE SEGUIR PASAR EL RESULTADO DE P + Q - T DE BINARIO A DECIMAL


Y VERIFICAR QUE ES EL VALOR ESPERADO.(Esta verificacin se pide en el
parcial)
.

Despus de ejecutar I4 resulta AX = ... FDA7 ......(4 smbolos en hexa)


3b) Agregar a mano, con bolgrafo, el valor de los flags SZVC en el punto 3 del TP anterior, en
los casos de que intervenga la UAL y verificar en el Debug del TP2 que el valor de SZVC
coincide con el calculado (se deber acompaar para la firma del TP3 y el TP2)
4) Indicar en hexa como queda en memoria (en dos posiciones sucesivas) el valor de
la variable R, y el valor de las variables P, Q y T.

Dir R

A7

FD
Dir P

31

01
Dir Q

06

00
Dir T

90

03

5) Indicar como debe quedar en memoria en cdigo ASCII la informacin que


debe llegar a la impresora para que imprima el valor de R en base diez (R =

XXX). Completar el siguiente cuadro, escribiendo al lado de


cada smbolo y digito decimal su codificacin ASCII (en
hexadecimal).

52

3D

2D

36

30

31

PARTE II (Experimental)
6a),6b) y 6c) no hacerlos.
7a) Escritura de la zona de datos: Luego de haber realizado el paso 6c en el
ltimo rengln de la pantalla se ver un guin indicador que el Debug est
esperando un comando. Al lado de este guin se escribir:
E 1234 (E 2848 para el DNI ejemplificado) siendo que las primeras 4 cifras del DNI
indicaban la direccin del comienzo de la zona de datos (paso 2a).

Luego de pulsar Enter () el Debug responder indicando el contenido de la


direccin que acompaa al comando E. Dicho contenido va seguido de un punto. A la
derecha de este punto el Debug est esperando que se escriba (si se desea) el
nuevo contenido con que se quiere reemplazar el contenido indicado. Este nuevo
contenido a escribir es el que aparece en la direccin simbolizada 1234 en la tabla
determinada en 2a.
Despus de escribir el nuevo contenido se debe pulsar la barra espaciadora,.para
evitar tipear nuevamente el comando E con la direccin siguiente. As el Debug
mostrar automticamente el contenido de la direccin siguiente a la modificada a
continuacin del ltimo contenido modificado. Nuevamente aparecer un valor que
no interesa, acompaado por un punto. A la derecha de este punto, como se hizo
anteriormente, hay que escribir el nuevo contenido que reemplazar al que se
muestra, de acuerdo con el segundo rengln de la tablada determinada en 2a
Seguidamente se debe pulsar la barra espaciadora, repitiendo el proceso anterior
para cada sucesiva direccin de memoria, hasta escribir todos los datos de la tabla
del paso 2a, en cuyo caso pulsar Enter (). En caso de duda consultar captulo 1.6
de la PC por Dentro.
7b) Volver a tipear E 1234 , y luego pulsar sucesivamente la barra espaciadora de
modo que vayan apareciendo todos los contenidos escritos en 7a.
VERIFICAR CON UN TILDE que sean los mismos que figuran en la tabla determinada en 2a.

7c) Escritura zona de instrucciones: escribir al lado del guin del Debug:
6

-E 5678 siendo que las ltimas 4 cifras del DNI indicaban la direccin del
comienzo de la zona de instrucciones (paso 2d). Luego proceder como en
7a) pero ahora para escribir en memoria la tabla del paso 2d)
7d) Volver a tipear E 5678 , y luego pulsar sucesivamente la barra espaciadora de
modo que vayan apareciendo todos los contenidos escritos en 7c.
VERFICAR CON UN TILDE que sean los mismos que figuran en la tabla determinada en 2d.
7e) Escribir al lado del guin del Debug el comando RIP con lo cual debajo de este
comando aparecer el valor actual del IP seguido de dos puntos, debiendo escribirse en
el tercer rengln la direccin donde comienza la primer instruccin, establecida en el
paso 2d., seguida de .
7f) Escribir al lado del guin el comando R , con lo cual aparecern en pantalla
3 renglones con el estado de distintos registros de la UCP. De esta informacin en
este paso slo interesan el valor del registro IP y en el tercer rengln a la izquierda el
cdigo de mquina de la primer instruccin de la secuencia.
ANOTAR A CONTINUACIN ESTOS VALORES
IP =

1206

CODIGO DE LA PRXIMA INSTR A EJECUTAR =

A15B30

Verificar, INDICANDO EN EL DEBUG CON UN TILDE O CON RESALTADOR


(CASO CONTRARIO EL TP ESTA INCOMPLETO).
i)

Si el valor del IP coincide con la direccin donde comienza la primer instruccin (I1)
establecida en 2d.
ii) Si el cdigo de mquina de la primer instruccin a ejecutar es el mismo que el
anotado ms arriba.
En caso de que alguna de las verificaciones indicadas no se cumpla, implica
que hay un error en la realizacin de 7b 7c.

7g) Escribir al lado del guin del comando T con lo cual se ejecutar la
instruccin I1 que apareci en pantalla al realizar el paso 7d. El Debug, como en el
paso 7d, mostrar en pantalla 3 renglones de informacin.
(El comando T siempre ejecuta el cdigo de mquina de la instruccin que est
arriba del mismo)
De esta informacin anotar a continuacin los siguientes valores:
AX =

0131

IP =

PROX INSTR A EJECUTAR =

03065D30

Verificar INDICANDO EN EL DEBUG CON UN TILDE O CON RESALTADOR (CASO


CONTRARIO EL TP ESTA INCOMPLETO)
i) si el valor de AX coincide con el calculado en el punto 3 despus de ejecutar I1 .
ii) si el valor de IP coincide con la direccin de comienzo de I 2 , establecida en 2d
iii) si el cdigo de la prxima instruccin a ejecutar (I2) es el que aparece a partir
del tercer rengln, observando la tabla del punto 2d

7h) dem 7g, con lo cual se ejecutar I2 volcando los siguientes valores
AX = 0137
IP =
120D
PROX INSTR A EJECUTAR = 2B065F30

Verificar INDICANDO EN EL DEBUG CON UN TILDE O CON RESALTADOR


(CASO
CONTRARIO EL TP ESTA INCOMPLETO), si AX coincide con el valor calculado, y si IP y la
prxima instruccin a ejecutar coinciden con lo establecido en 2d
7i) dem 7g, con lo cual se ejecutar I3 volcando los siguientes valores:
AX =

FDA7

IP =

1211

PROX INSTR A EJECUTAR = A35930

Verificar INDICANDO EN EL DEBUG CON UN TILDE O CON RESALTADOR (CASO


CONTRARIO EL TP ESTA INCOMPLETO), si AX coincide con el valor calculado, y si IP y la
prxima instruccin a ejecutar coinciden con lo establecido en 2d
7j) dem 7g, con lo cual se ejecutar I4 volcando los siguientes valores:
AX =

FDA7

IP =

1214

PROX INSTR A EJECUTAR = XXXXXXXX

Verificar INDICANDO EN EL DEBUG CON UN TILDE (o con un resaltador), si AX coincide con


el valor calculado (tambin indicado en el paso 4), y si IP y la prxima instruccin a ejecutar
coinciden con lo establecido en 2d
Despus de este paso, en la pantalla debern verse cuatro comandos T, en correspondencia
con la ejecucin de las 4 instrucciones que componen la secuencia.
7k) La instruccin I4 de cdigo de operacin A3 ordena pasar el contenido de AX a la
direccin de memoria que acompaa a A3. Para verificar que se ejecut esta
instruccin se debe examinar esta direccin de memoria y la siguiente,
correspondientes a la ubicacin de la variable R. Esto implica que en el Debug debe
hacerse, de acuerdo con el paso 2a:
-E direccin de la variable R (primeras 4 cifras del DNI)
El valor de esta direccin y el de la siguiente debe coincidir con el indicado en el
paso 4, en cuyo caso se debe resaltar en el Debug esta coincidencia. Caso contrario
debe buscarse el error cometido
ADJUNTAR A ESTAS 5 PAGINAS, TODOS LOS PASOS REALIZADOS CON EL DEBUG

Capturas DEBUG
Punto 7) a) b) c) e)

7 f) g) h) i) j) k)

10