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!
Saludos,
Leonardo.
No entiendo bien a que te referís. Descarto los otros 4 bits que quedan en la dirección 0xB401?
Gracias, saludos.
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.
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.
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
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.
uh, claro. Gracias!