А чего, в этом коде не видно начальных установок для стека например?
И ещё, я видать совсем асм забыл, но тупой вопрос: откуда будет считано значение в аккумулятор после команд
INTRPT: push h
push d
push b
push psw
lxi h,STKEY
mov a,m
вроде задается только значение "H", а значение "L" - остается тем, которое было до входа в прерывание... или я снова глючу...?