Прочитать состояние линии интерфейса клавиатуры 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 на экран (у меня возвращает нуль, т.е.ОК!)

Объяснение кода листинга программы

  1. mov al, 0ABh — в переменную AL записывается значение 0ABh (код команды теста интерфейса).
  2. out 64h, al — из порта 64h выводится значение переменной AL.
  3. in al, 60h — в переменную AL считывается значение из порта 60h.
  4. add al, 30h — к значению переменной AL прибавляется 30h (для получения ASCII-кода).
  5. int 29h — происходит прерывание, и ASCII-код выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы