OK,OK.
Es logica la solucion de Dioniso (Ya me estaba complicando la vida con un contador y que hasta que no llegara a cierto valor no te dejara pulsar de nuevo) y mucho mas sencilla de lo que yo habia pensado.
Si dices que "el ASM es demasiado rápido" posiblemente podría tratarse de que estás leyendo el teclado fuera de todo control de velocidad
La deteccion de teclas la estoy haciendo dentro del bucle principal, con su retardo correspondiente (HALT) y con las demas subrutinas que hay que ejecutar, pero como os he dicho es tan rapido que me ejecuta la rutina varias veces.
Gracias, estoy seguro de que con estos consejos voy a solucionar el tema.