Ejercicio de examen para cargar ROM y números BCD.

Ejercicio de examen para cargar ROM y números BCD.

de Miguel Orlando Da Silva Maciel -
Número de respuestas: 2
Estuve mirando las soluciones de los ejercicios de exámenes que son para cargar ROM y cuyos datos de entrada/salida están representados usando BCD. Resulta que no entiendo la manera que hacen el loop para cargar la ROM.

Por ejemplo, en el examen del 23/12/2011 la ROM que hay que armar tiene 64k x 16 y la entrada son 2 números de 2 dígitos cada uno y cuya representación es en BCD. Entonces, cada número está entre 00 y 99.

Como la ROM es de 64k x 16, en el for que hace la carga el índice de control va de 0 hasta 65535 y ese valor es mucho más grande que las 10000 posibilidades que hay de escribir números de 4 dígitos entre 0000 y 9999. 

¿Es lo mismo usar 2 for's anidados que van desde 00 a 99 cada uno, en vez de poner 1 único for entre 0 y 65535? En el segundo caso (1 único for) en las posiciones más grandes que 10000 quedarán valores que no significan nada.

Saludos.
En respuesta a Miguel Orlando Da Silva Maciel

Re: Ejercicio de examen para cargar ROM y números BCD.

de Miguel Orlando Da Silva Maciel -
Hay otro ejemplo de lo que estoy tratando de decir: es el ejercicio 3 del examen del 2 de febrero de 2011.

La ROM para la solucón es de 4k x 32, sin embargo, solo necesitaremos 3600 posiciones, así que sobran direcciones vacias.

En la solución se presentan 2 for's anidados recorriendo valores de 0 a 60, cada uno de ellos.

Saludos.
En respuesta a Miguel Orlando Da Silva Maciel

Re: Ejercicio de examen para cargar ROM y números BCD.

de Sergio De Cola -

Para estos casos las dos estrategias son válidas, aunque pueden generar contenidos distintos de las ROMs en las posiciones no utilizadas (las que corresponden a combinaciones de bits de entrada que no representan cuaternas de números codificados en BCD). Incluso puede pensarse, en el ejemplo propuesto, en anidar 4 fors (uno en cada dígito).

También son distintas, obviamente, las estrategias de programación: mientras que en el caso del for de 0 a 65535 hay que derivar los valores de entrada a la función del indice del for (que funciona como dirección de la ROM), en el caso de los for anidados los valores de entrada se obtienen directamente (los indices de los for) y a partir de ellos se debe construir la dirección.

Saludos.