Tengo una asignación de ensamblaje que me obliga a poder almacenar un número y, a través de una tabla de búsqueda, genera el número en una pantalla de 7 seg, tanto en orden directo como inverso, según el estado de un interruptor de entrada. Si bien no es un requisito, me gustaría usar la menor cantidad de ciclos y códigos que pueda y seguir las buenas prácticas de codificación.
Mi idea actual es almacenar el número dos veces (una vez en cualquier dirección) y elegir la dirección de memoria de inicio según el estado del interruptor. De esta manera, solo necesito una rutina de búsqueda que esencialmente lea cualquiera de los números en la dirección de fwd.
Una alternativa que he considerado es tener dos rutinas de búsqueda. Uno que incluye Z y otro que lo decrementa. Esto tiene la ventaja obvia de que solo requiere un número almacenado a expensas de líneas adicionales de código.
¿Alguno de estos enfoques es aceptable o hay otros métodos que no he considerado?
Tiendo a pensar que lo primero es más efectivo pero menos flexible que lo segundo.