Архитектура микропроцессорной системы. Состав машинных команд и основы программирования микропроцессорной системы на ассемблере. Булатов В.Н. - 112 стр.

UptoLike

Составители: 

RET ; и выйти.
WAIT: IN AL,64 ; Подпрограмма опроса готовности клавиа-
TEST AL,02 ; туры: ввести слово состояния и проверить:
D1=0
JNZ WAIT ; если не ноль, то снова его чтение.
RET ;
Пример 2 Составить подпрограмму настройки клавиатуры на
максимальную скорость передачи повторения скан-кода нажатой клавиши и
начальную задержку 0,5 секунд между моментом пердачи первого скан-кода и
ее повтора.
Используя синтез data 2, получим значение второго байта
команды: 20. Составляем подпрограмму:
CLI ; Запретить прерывания (из-за клавиатуры).
CALL WAIT ; Готова ли клавиатура?
MOV AL,F3 ; Выдать команду задержки и скорости
OUT 60,AL ; вывода скан-кодов.
CALL WAIT ; Готова ли клавиатура?
MOV AL,20 ; Если готова, то выставить второй
OUT 60,AL ; байт команды 20h.
STI ; Снять запрет с прерываний
RET ; и выйти.
WAIT:IN AL,64 ; Подпрограмма опроса готовности клавиа-
TEST AL,02 ; туры: ввести слово состояния и проверить:
D1=0
JNZ WAIT ; если не ноль, то снова его чтение.
RET ;
112
            RET        ; и выйти.
      WAIT: IN AL,64 ; Подпрограмма опроса готовности клавиа-
            TEST AL,02 ; туры: ввести слово состояния и проверить:
       D1=0
            JNZ WAIT   ; если не ноль, то снова его чтение.
            RET        ;

      Пример 2 —Составить подпрограмму настройки клавиатуры на
максимальную скорость передачи повторения скан-кода нажатой клавиши и
начальную задержку 0,5 секунд между моментом пердачи первого скан-кода и
ее повтора.
      Используя синтез data 2, получим значение второго байта
команды: 20. Составляем подпрограмму:

     CLI              ; Запретить прерывания (из-за клавиатуры).
     CALL WAIT        ; Готова ли клавиатура?
     MOV AL,F3        ; Выдать команду задержки и скорости
     OUT 60,AL        ; вывода скан-кодов.
     CALL WAIT        ; Готова ли клавиатура?
     MOV AL,20        ; Если готова, то выставить второй
     OUT 60,AL        ; байт команды 20h.
     STI              ; Снять запрет с прерываний
     RET              ; и выйти.
WAIT:IN AL,64         ; Подпрограмма опроса готовности клавиа-
     TEST AL,02          ; туры: ввести слово состояния и проверить:
D1=0
     JNZ WAIT         ; если не ноль, то снова его чтение.
     RET              ;




112