You are on page 1of 15

UNIVERSIDAD ABIERTA INTERAMERICANA

FACULTAD DE TECNOLOGA INFORMTICA


Asignatura: Sistemas de Computacin I
Nombre y Apellido . Juan Pablo Sempertegui Quiroga
DNI 93 034402 Curso JUEVES TURNO NOCHE

TRABAJO PRCTICO N 2 INTEGRADOR SOBRE DATOS NUMRICOS QUE SON


MAGNITUDES
Objetivos: Este TP es muy importante, por las siguientes razones:
-

Adems de efectuarse pasajes entre diferentes codificaciones numricas, requiere del alumno que
reconozca la codificacin requerida en los 4 subprocesos de un proceso de datos:
entradamemorizacin-procesamiento-salida, as como el hardware involucrado en cada uno de
ellos.
Permite diferenciar tres niveles de codificacin: alto nivel, bajo nivel (mquina) y hexadecimal
para el operador.
Permite diferenciar distintas formas de codificar en binario una misma informacin, de acuerdo si
debe ser procesada por un programa compilador, la UAL o la UC
Requiere que el alumno se coloque en lugar de un compilador, de modo de realizar las tareas
bsicas de traduccin del mismo, y de asignacin de direcciones de memoria a las variables,
constatando que antes de ejecutar un programa, el mismo y los datos deben estar en memoria en
zonas separadas, debiendo estar representados en cdigos que entiendan la UAL y la UC
Permite que el alumno verifique la existencia de formatos para registrar informacin en la
memoria y en los registros de la UCP, y comprenda las relaciones que existen entre los mismos
Permite que el alumno comprenda y verifique cmo se deben dar las rdenes (instrucciones) a un
procesador real (80286 simulado por el Debug), y cmo una sentencia en alto nivel debe
traducirse en varias instruccione simples, para que la mquina las pueda ejecutar, siendo este
proceso de traduccin muy similar al que se realiza en una calculadora comn cuando se efecta
un clculo complejo.. Asimismo. el alumno verifica que existen formatos distintos para las
instrucciones, y que los datos se localizan en memoria por su primer direccin, aunque ocupen
varias posiciones consecutivas. Tambin comprende que en una instruccin se debe indicar dnde
encontrar el operando, y que la misma consta de un primer campo que indica la operacin a
realizar.
Plantea la existencia y uso de un registro acumulador
Requiere que el alumno se coloque en lugar de la UAL en la realizacin de las operaciones
ordenadas
Permite que el alumno verifique que cuando se tipean caracteres desde el teclado, en este caso
correspondientes a una sentencia en un lenguaje de alto nivel, los mismos quedan codificados en
ASCII; y que esta codificacin binaria slo la entiende el compilador (o el intrprete). Y que la
UAL slo opera con binario natural, mientras que la UC slo entiende un cdigo de
combinaciones binarias que constituyen el cdigo de mquina; mientras que la impresora o la
pantalla pueden requerir tambin de la codificacin ASCII en el proceso de salida.
Requiere codificar el resultado en memoria y verificarlo.
1

Permite comprender la necesidad del uso del registro IP (Instruction


Pointer = contador de programa), as como verificar de que forma el
mismo debe inicializarse, y como cambia automticamente de instruccin en instruccin.
Permite ejecutar una secuencia real de instrucciones, de a una por vez, y examinar luego de
ejecutar cada una si los registros y flags cambiaron de acuerdo con lo esperado.
En general sirve para que el alumno empiece a comprender cmo funciona un computador, se
plantee interrogantes, y visualice la necesidad de un orden implacable que debe seguir la UC para
llevar adelante el proceso.

Desarrollo del TP:

El presente TP consta de dos partes vinculadas. En la primera se codifican datos e instrucciones, y se


calculan resultados esperados. (REALIZARLA CON LAPIZ BIROME NEGRA BORRABLE EN
LAS HOJAS DEL TP, NO EN HOJAS ESPECIALES, aunque el espacio para escribir parezca
reducido) La segunda parte requiere el uso del Debug para constatar mediante el computador que
dichos resultados coinciden o no con los que arroja la mquina.
Cualquier discrepancia entre resultados calculados manualmente y los obtenidos con la PC debe hallarse y corregirse.
El TP es personalizado, para lo cual direcciones y datos se toman del DNI. Para tal fin, en lo que sigue
indicaremos las 8 cifras de un DNI en la siguiente forma genrica 12.345.678, debiendo el alumno tomar en
cada caso las cifras indicadas de su DNI. En caso de nmeros particulares, el docente que supervisa la
prctica visar cualquier cambio necesario.
Los conocimientos necesarios para realizar la primer parte sern proporcionados por el docente, siendo que
tambin se encuentran en la Unidad 1 del texto (La PC por Dentro), pginas I 135 a I 150, mientras que la
segunda parte se basa en las pginas I-30 a I-38 del mismo texto.

DADO QUE LA EVALUACIN PARCIAL SE BASA EN ESTE TP Y EN LOS TP3 y TP4, ES


FUNDAMENTAL REALIZAR DENTRO DE LOS VENCIMIENTOS ESTIPULADOS ESTOS
TRABAJOS PRCTICOS, VERIFICANDO LA CONCORDANCIA ENTRE LOS RESULTADOS
CALCULADOS Y LOS QUE ARROJA SU REALIZACIN EXPERIMENTAL EN LA PC.
ASIMISMO, CADA PASO DEBE RAZONARSE LO QUE SE EST HACIENDO, PUES LAS
PREGUNTAS TERICAS DEL EXMEN PARCIAL APUNTAN A DETERMINAR SI LOS TP SE
HICIERON A CONCIENCIA O DE FORMA MECNICA, SIN SABER QU SE EST HACIENDO.

Desarrollo del TP 2
Se ha tipeado en un cierto lenguaje de alto nivel.
MAGNITUDES
R=P + Q - T
P= 930
Q= 344
T= 02

D.N.I.: 93.034.402

1)- Completar la columna que empieza con 4D, escribiendo en HEXA como quedan en memoria
codificados en ASCII los caracteres arriba tipeados. (Se indica en 0100 el cdigo ASCII 4D de M). Para
codificar usar la tabla ASCII del texto. (Se elige la primera direccin 0100 por compatibilidad con el
Debug, que usaremos en la parte II). Completar las direcciones. Tomar como referencia la pag 1-113
de La PC por Dentro (6ta ed) de M. Ginzburg.

0100

4D

0101

41

0102

47

0103

4E

0104

49

0105

54

0106

55

0107

44

0108

45

0109

53

010A

0D

CR

010B

0A

010C

52

010D

3D

010E

50

010F

2B

0110

51

0111

2D

0112

54

0113

0D

CR

0114

0A

0115

50

0116

3D

0117

39

9
3

0118

33

0119

30

011A

20

SP

011B

51

011C

3D

011D

33

011E

34

011F

34

0120

20

SP

0121

54

0122

3D

0123

32

0124

0D

CR

0125

0A

2)- 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 de su DNI (suponiendo que son un nmero 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.. Los valores XX de P, Q y T se determinarn en 2c) y no en este punto.
9303

9304
9305

A2

9306

03

9307

58

9398

01

9309

02

930A

00

P
Q
T

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 = 930
Q = 344
T = 02

I1

I2

I3

I4

Respuesta

(en decimal) = 0000 0011 1010 0010 (pasar a binario) = 03A2


= 0000 0001 0101 1000
= 0158
= 0000 0000 0000 0010
= 0002

(pasar a hexa)

2d)- Escribir en XX los valores en hexa hallados en 2b para


P, Q y T en las
A1
4402
posiciones
de
4403
05
memoria
reservadas en 2a,
4404
93
al lado de XX.
03
4405
Tener
presente
06
que para el Intel se
4406
necesita
escribir
4407
07
los dos smbolos
4408
93
menos
significativos en la
2B
4409
direccin
ms
06
440A
baja,
y
los
restantes en la
440B
09
direccin
440C
93
siguiente.
A3
Por ejemplo, si P = 032A, escriba primero XX=2A y abajo
440D
XX=03, (cmo se ejemplifica en la pag 1-149 antes citada)
440E
03
Pregunta: Por qu no debe escribirse a esta altura el valor de
440F
93
R?
(Escribir ac la respuesta)

Porque an no ejecutamos ningn Cdigo de Operacin.


En la Direccin de memoria de R puede haber cualquier valor.

3)- 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:
Despus de ejecutar I1 resulta AX =....03A2.....

(en hexa) = P

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

P
Q

P+Q

= 0000 0011 1010 0010


+
= 0000 0001 0101 1000

= 0000 0100 1111 1010

Despus de ejecutar I2 resulta AX = .04FA.(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 tambin 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:
UAL
P + Q = 0000 0100 1111 1010
P+Q=
0000 0100 1111 1010
+
T=
T con bits invertidos es =
1111 1111 1111 1101
Sumar 1
_______________________1_
P+QT =
1
0000 0100 1111 1000
Despus de ejecutar I3 resulta AX =.....04F8........

=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 = .....04F8........(4 smbolos en hexa)

4) Indicar en hexa como queda en memoria (en dos posiciones sucesivas) el valor de la variable R
Valor de R
Dir R

F8

04
Dir P

A2

03
Dir Q

58

01
Dir T

02

T
6

00

PARTE II (Experimental)
Esta segunda parte se lleva a cabo usando Debug y el teclado. Cada vez que se completa una
pantalla usando el Debug, se deber imprimir la misma. Caso contrario se perder la
informacin que est en la parte superior de la pantalla, al entrar nueva informacin. Las hojas as
impresas se debern adjuntar a este TP
Una forma de realizar la impresin es achicar (mediante Alt ) la ventana del Debug. Luego
cliquear en el borde azul de la misma con el botn derecho del mouse para que aparezca una
ventanita con la opcin edit y desde sta a la opcin mark de modo que aparezca en el borde
superior izquierdo de la ventana del debug un pequeo rectngulo blanco. Este se puede agrandar
con el botn izquierdo del mouse, hasta seleccionar la zona que se quiere enviar al portapapeles,
para lo cual se debe pulsar Enter. Despus se debe abrir el Word, y en un archivo nuevo se debe
hacer Ctrl V, para que la zona antes seleccionada aparezca en pantalla, de modo de poder
guardarla y luego imprimirla desde el Word.

5) Verificacin de la coincidencia entre los cdigos ASCII hallados en el paso 1, y los mismos tipeados
mediante el teclado.
6a) Entrar al DOS y tipear lo que est en itlica (12345678 indican el orden, no el valor de los nros del
DNI)
C > COPY CON MARIO. TXT (o cualquier nombre seguido por un punto y tres letras)
MAGNITUDES
R=P+QT
P = 930 Q = 344 T = 2
Ctrl Z
1 ARCHIVO COPIADO (responde el DOS)
6b) En el DOS tipear lo que est en itlica C
> DEBUG MARIO. TXT
6c) Al lado del guin que aparecer luego de tipear el comando anterior, con lo cual debe aparecer
el cdigo 4D de la letra. M de la palabra MAGNITUDES en ASCII hexadecimal:
-E 0100
4D.

Luego, pulsar sucesivamente la barra espaciadora, de modo que vayan


apareciendo los cdigos ASCII en hexa de los caracteres tipeados en 6a,
que deben ser los mismos que los determinados en el paso 1).
VERIFICAR CON UN TILDE (SI NO SE HACE ESTO EL TP SER RECHAZADO) que dichos
cdigos coincidan con los determinados mediante tablas en el paso 1. En caso afirmativo usando un
resaltador marcar las coincidencias.
Analizar qu pasa cada vez que se tipea Enter () en relacin con lo supuesto en el paso 1
7) Escritura en memoria, mediante el comando E del Debug, de las zona de datos y la de
instrucciones determinadas en 2a 2b y 2d, y verificacin mediante lectura (nuevamente con el
comando E) de que la escritura fue correcta so pena de que lo que sigue salga mal. Esto implica
los siguientes pasos:
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:
-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 .
8

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 CONTINUACION ESTOS VALORES
IP =
CODIGO DE LA PROXIMA INSTR A EJECUTAR = A1

(completar las x)

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 primera 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 =

IP =

PROX INSTR A EJECUTAR = 0306

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 I2 , 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 =
IP =
PROX INSTR A EJECUTAR = 2B06
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 =

IP =

PROX INSTR A EJECUTAR = A3

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:

10

AX =

IP =

PROX INSTR A EJECUTAR =

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 A3XXXX ordena pasar el contenido de AX a la direccin de
memoria XXXX 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

11

Capturas DEBUG
Punto 7)

6a)

6 b) Y 6 c)

7)

7A)

7B)

7C)

12

7C)

13

14

15

You might also like