Está en la página 1de 7

92432957

CONSIGNAS

Primera parte

1) Dada la siguiente operación: 1011 + 0011 + 0001

1.a) Realice la suma

1 1
1 0 1 1
+ 0 0 1 1
1
1 1 1 1

1.b) Deduzca cuál fue la operación que se ejecutó e indíquelo en el cuadro a continuación.

La operación original es la resta de 1011-1100=1111 HEX FFFF DEC -1

1.c) Luego determine el valor que tomarían los flags al finalizar la operación, agrupando los fla
gs para naturales o enteros en las siguiente líneas.

EMPIEZA TERMINA
NATURALES NC CY
NATURALES Y ENTEROS NZ NZ
ENTEROS NV PL NV NG

2) Realice las siguientes operaciones por complemento a la base y por complemento a la base
menos uno.
2.a) 0010 1101 – 0001 0111
2.b) 0001 0111 – 0010 1101
Ejercicio 2ª y 2b por complemento a la base

Ejercicio 2ª y 2b por complemento a la base menos 1

3) Suponiendo que tiene que comparar dos números, determine con una operación arit
mética el valor de los flags si el primer número es mayor, menor o igual que el segundo, y verif
ique la experimentación manual con el debug.
3.a) Experimentación manual

Ejemplo 1:
A-B (A=10 y B=11)
10-11=-1 Decimal FFFF Hexa
Flags de inicio: NV PL NZ NC
Flags de final : NV NG NZ CY
El cambio de flags indica que A<B, bit de signo a 1

Ejemplo 2:
B-A (A=10 y B=11)
11-10=1 Decimal y Hexa
Flags de inicio: NV PL NZ NC
Flags de final: NV PL NZ NC

Los flags quedan igual, B>A

Ejemplo 3:
A-A (A=10)
10-10=0
Flags de inicio: NV PL NZ NC
Flags de final: NV PL ZR NC
Cambia signo de Z, ya que el resulta es cero, A es igual A

3.b) Experimentación con el debug


Pegue aquí las imágenes de la experimentación con el debug
Segunda parte

En un leguaje de alto nivel se tipió:


INTEGERS
R=P-Q+T siendo P = +89 Q=+95 T=-20

4) Las direcciones de memoria de las variables P, Q, T y R son respectivamente AA35; 5629; CD


A4 y2500.

La dirección de la primera instrucción a codificar es 0800. En función de los datos presentados


codifique y escriba la zona de datos y la zona de instrucciones.

Recuerde que los códigos de operación son los mismos que los que se utilizaron en los Trabajo
s Prácticos:
A1 para llevar un dato de memoria hacia AX.
0306 para sumarle al registro AX un número que está en memoria
2B06 para restarle al registro AX un número que está en memoria
A3 para pasar una copia que está en AX a memoria

Zonas de Datos de la Memoria

DATOS DECIMAL BIN


VARIABLE POS(HEX) VALOR (HEX)
P AA35 59 01011001
89
AA36 00 00000000
Q 5629 5F 01011111
95
5630 00 00000000
T CDA4 EC 11101100
-20
CDA5 FF 00000000
R 2500
2501

Zonas de Instrucciones de la Memoria


INSTRUCCIONES
POS (HEX) VALOR (HEX)
0800 A1
0801 35
0802 AA
0803 2B
0804 06
0805 29
0806 56
0807 03
0808 06
0809 A4
080A CD
080B A3
080C 00
080D 25

5) Luego de ejecutar cada instrucción del punto, indique el valor de AX en HEXA y el valor del I
P

Instrucción AX IP
I1 0059 0803
I2 FFFA 0807
I3 FFE6 080B
I4 FFE6 080E

6) Indique cómo queda en memoria la zona de datos luego de ejecutar las instrucciones.

DATOS DECIMAL BIN


VARIABLE POS(HEX) VALOR (HEX)
P AA35 59 01011001
89
AA36 00 00000000
Q 5629 5F 01011111
95
5630 00 00000000
T CDA4 EC 11101100
-20
CDA5 FF 00000000
R 2500 E6 11100110
-26
2501 FF 00000000
7) Suponiendo que se quiere imprimir el resultado en modo texto, indique cómo debe llegar a
la placa de video lo que debe salir en pantalla, es decir R=xxxx

Representacion
Dato HEXA ASCII
R 52 82
= 3D 61
X F 70
X F 70
X E 69
X 6 54

Tercera parte

A continuación le presentamos una serie de preguntas teórico prácticas, que usted deberá res
ponder.

8) ¿Por qué se le debe dar al IP un valor inicial? ¿Cuál es éste valor y qué sucede si no se le da
el valor indicado?
Porque este valor indicará la dirección de memoria donde el programa irá a buscar la primer
instrucción. El valor será el tipo de operación indicada cuando cargamos las mismas, de no
darse el valor indicado no se ejecutara la instrucción y por consiguiente el programa.

9)Por qué las instrucciones de una secuencia deben estar en posiciones consecutivas y los dat
os no?
Porque la UC va cambiando el valor de IP según la operación para ir localizando en memoria las
sucesivas instrucciones que debe ejecutar, formando una secuencia, así es que las
instrucciones a ejecutar deben estar escritas en posiciones consecutivas de memoria. En los
datos no es necesario ya que cargamos la dirección de ellos luego de cada operación cargada
en las instrucciones.

10) ¿Cuánto debe aumentar el IP luego de ejecutar una instrucción?


Cada instrucción permite determinar donde está la siguiente a ejecutar y establecer el valor
que tendrá el registro IP. Si el código de la instrucción ocupa 3 bytes aumentará el IP donde
inició + 3, si ocupaba 4 bytes, el IP + 4.
11) ¿Qué pasa si las instrucciones no están en posiciones consecutivas?
La UC no podrá ejecutar las instrucciones ya que no las encontrará.

12) ¿En qué caso hay overflow?


Sea una suma o resta de binarios naturales que representan números enteros realizada en la
UAL:
Será V=1 (overflow SI) si ambos números en la UAL tienen igual bit de signo y el resultado tiene
bit de signo contrario.

13) ¿Qué hace el comando R IP del Debug?


Con la orden RIP modificamos el valor de IP para direccionarlo a la dirección de memoria
donde está alojada la primera instrucción.

14) ¿Qué significa que el flag C tome el valor 1 después de que la UAL realizó una resta?
El flag C en la resta de naturales sirve para determinar si el minuendo es mayor o menor que el
sustraendo, sin importar el valor concreto del resultado, ni el orden en que se restan los
números naturales. Es decir entre en una resta entre dos valores A y B, cuando C=1 implica que
A<B.

También podría gustarte