Como guardar 12 bits

Como guardar 12 bits

de Juan Martin Curbelo Gelencich -
Número de respuestas: 7

Mi problema es que la dirección 0xB400 es de 16 bits pero lo apuntado por esa dirección es de 8. La suma de alfa + beta me quedo de 12 bits, por lo tanto al guardarlo me quedan 8 bits en 0xB400 y los otros 4 en 0xB401. Es así como tengo que hacerlo o hay alguna forma de guardar los 12 bits juntos? Gracias!

En respuesta a Juan Martin Curbelo Gelencich

Re: Como guardar 12 bits

de Leonardo Etcheverry -
La letra no lo especifica claramente pero la idea es que hagan la operación de suma en 8 bits.

Saludos,
Leonardo.


En respuesta a Leonardo Etcheverry

Re: Como guardar 12 bits

de Juan Martin Curbelo Gelencich -

No entiendo bien a que te referís. Descarto los otros 4 bits que quedan en la dirección 0xB401?

Gracias, saludos.

En respuesta a Juan Martin Curbelo Gelencich

Re: Como guardar 12 bits

de Leonardo Etcheverry -
Si haces una suma en 8 bits (con una instrucción que tome dos operandos de 8 bits y devuelva un resultado de 8 bits), ese "descarte" es implícito.

Un detalle, como está planteada la letra, alfa y beta están representados en 8 bits. La suma de dos números de 8 bits es representable en 9 bits. Solo lo menciono porque no entendí como llegaste a elegir 12 bits.

Saludos,
Leonardo.

En respuesta a Juan Martin Curbelo Gelencich

Re: Como guardar 12 bits

de Leonardo Etcheverry -

Un ejemplo, para las versiones de la suma:

a   = 0xE7 =  11100111
b   = 0x81 =  10000001
a+b =         01101000  (y hay carry)

Nosotros pedimos el 01101000 (8 bits) en la dirección 0xb400.

En respuesta a Leonardo Etcheverry

Re: Como guardar 12 bits

de Ignacio Sarasola Nogues -

Pregunta:

Por ejemplo, en la versión uno que pide contar los enteros pares del M[β] al M[β+α-1], si suponemos que son todos pares, y además β+α no es representable en 8 bits, tambien despreciamos el carry cuando guardamos el resultado en 0xb401?

Salu2

En respuesta a Ignacio Sarasola Nogues

Re: Como guardar 12 bits

de Leonardo Etcheverry -

Hola Ignacio,

Notá que el largo de la región de memoria que tenes que recorrer viene dado por:

dir_inicio = beta
dir_fin     = beta + alfa -1

Entonces,

largo = dir_fin - dir_inicio + 1 = alfa

Así que como mucho tenés alfa (0 a 255) direcciones para recorrer; y aún si todas esas direcciones contienen enteros pares, siempre los podés contar con 8 bits.

Saludos, Leonardo.