Práctico 1 Ejercicio 7

Práctico 1 Ejercicio 7

de Facundo Padula Lenna -
Número de respuestas: 4

Qué son los bits de condición Z (cero) y N (negativo)?

En respuesta a Facundo Padula Lenna

Re: Práctico 1 Ejercicio 7

de Federico Rivero -

Estimado:

Los bits de condición (o flags) son bits que dan información adicional sobre el resultado de una operación. La flag Z vale 1 si el resultado es 0, y la flag N vale 1 si el resultado es negativo.

Saludos!

        Federico

En respuesta a Federico Rivero

Re: Práctico 1 Ejercicio 7

de Facundo Padula Lenna -

Gracias!

Otra consulta más: en este mismo ejercicio se dan 4 operaciones (con números hexadecimales) y se pide realizarlas en notación complemento a 2.

Esto significa que si la operación es CAFE + B007 tengo que pasar ambos números de hexadecimal a binario, hacer el complemento, sumarle uno, y una vez que estén en complemento a 2 sumarlos?

En respuesta a Facundo Padula Lenna

Re: Práctico 1 Ejercicio 7

de Gustavo Brown -

No. Significa que los números ya están representados en complemento A2. Tenés que pasarlos a binario y hacer la suma binaria; luego interpretar el resultado en complemento A2.

Para saber si hubo overflow podés interpretar los operandos en complemento A2 y verificar que el resultado de la suma binaria, interpretada en complemento A2, sea consistente. Si no es consistente es porque hubo overflow. Mirando los últimos 2 acarreos de cada operación podes determinar la regla que debe cumplir la bandera de overflow para sumas de números en complemento A2.

La última operacion es una resta (0x5789 - 0x021F) que es equivalente a 0x5789 + (-0x021F), por lo que en este caso podés aplicarle el complemento A2 a 0x021F para obtener el opuesto (-0x021F) y luego hacer la suma con 0x5789

Saludos,
  Gustavo

En respuesta a Gustavo Brown

Re: Práctico 1 Ejercicio 7

de Facundo Padula Lenna -

Entonces en el caso de CAFE + B007:

(CAFE)16  ---> (1100 1010 1111 1110)2 = representación en complemento a dos de un número N.

Entonces N = 0011 0101 0000 0010.

(B007)16  ---> (1011 0000 0000 0111)= representación en complemento a dos de un número M.

Entonces M = 0100 1111 1111 1001.


Por lo que la suma de las representaciones es:

   1100 1010 1111 1110

1011 0000 0000 0111

-------------------------------

1 0111 1011 0000 0101


Y la suma de N+M es:

   0011 0101 0000 0010

0100 1111 1111  1001

-------------------------------

   1000 0100 1111 1011


Como en la suma de las representaciones tengo carry=1 y en la de los números carry=0, hago un XOR y obtengo 1, por lo que hubo overflow. Es así? ¿Es el mismo caso al revés, si no hubiera habido carry en la suma de las representaciones pero sí en el de los números?

Gracias desde ya.