Прочитать состояние линии интерфейса клавиатуры KEYBOARD CLOCK і KEYBOARD DATA - Assembler
Формулировка задачи:
Прочитать состояние линии интерфейса клавиатуры KEYBOARD CLOCK і KEYBOARD DATA. Результат вивести на екран.
При дебаге видно, что в al падает значение 42 (это соответствует последней нажатой клавише F8 в турбо дебагере), получается ,что запрос ABh в порт 64h не попадает. Подскажите, что не так =(
.model small .stack 100h .code start_: mov ax, @data mov ds, ax mov ax, 00abh ; ложим команду теста интерфейса out 64h, al ; отправляем команду в порт in al, 60h ;на выходе в порте 60h должно быть значение 00h-05h mov ax, 4c00h int 21h end start_
Решение задачи: «Прочитать состояние линии интерфейса клавиатуры KEYBOARD CLOCK і KEYBOARD DATA»
textual
Листинг программы
mov al, 0ABh ; ложим команду теста интерфейса out 64h, al ; отправляем команду в порт in al, 60h ; на выходе в порте 60h должно быть значение 00h-05h add al,30h ; получаем ASCII int 29h ; выводим AL на экран (у меня возвращает нуль, т.е.ОК!)
Объяснение кода листинга программы
- mov al, 0ABh — в переменную AL записывается значение 0ABh (код команды теста интерфейса).
- out 64h, al — из порта 64h выводится значение переменной AL.
- in al, 60h — в переменную AL считывается значение из порта 60h.
- add al, 30h — к значению переменной AL прибавляется 30h (для получения ASCII-кода).
- int 29h — происходит прерывание, и ASCII-код выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д