Код:ktest ld c,a ; код клавиши помещаем в c. and 7 ; оставляем только биты d0-d2 для получения номера ряда. inc a ; прибавляем единицу, чтобы значение стало от 1 до 8. ld b,a ; помещаем в b. srl c ; делим c на 8, srl c ; для того, чтобы найти позицию внутри ряда. srl c ld a,5 ; в ряду 5 клавиш. sub c ; вычитаем из кода значение позиции. ld c,a ; результат помещаем в c. ld a,254 ; старший байт номера порта из которого будем читать. ktest0 rrca ; с помощью сдвига вычисляем старший байт адреса порта. djnz ktest0 ; повтор, пока не найдем соответствующий ряд. in a,(254) ; читаем порт (a=старший байт, 254=младший). ktest1 rra ; сдвигаем биты в прочитанном результате. dec c ; счетчик цикла. jp nz,ktest1 ; повторять пока нужный нам бит не окажется в флаге переноса. ret




Ответить с цитированием