Buenas!
Leyendo lo que me contas, se me ocurre que puede haber un problema con la dirección en que colocan la tabla, repasen el funcionamiento de la subrutina hexa7seg junto con la nota que está en la letra:
"Se supone que el comienzo de la tabla está alineado al comienzo de una página de 256 posiciones en memoria, o dicho de otra forma que el byte bajo de la dirección tab_h7s vale 0."
Espero haber ayudado!
Saludos
Manuel