Отчет по практике: Микропроцессорные системы

int16h

Результат функции – в AL байт флагов клавиатуры.

Пример завершения циклической программы при нажатой клавише Ctrl:

c:…………………. ; основная часть программы

Movah,02h

Int 16h

Andal, 00000100b ; выделение флага Сtrl

Jzc

Movax, 4c00h ; выход из программы

Int 21h

При нажатии клавиши Ctrl взводится бит 2 в статусе клавиатуры и пока клавиша нажата остается в состоянии «1». При отпускании клавиши производится сброс флага Ctrl. Остальные флаги работают аналогично.

Значении байтов флагов клавиатуры хранится по адресу 0040:0017hв области данный BIOS(0040:0000h – 0040:00FFh). Поэтому проверку флага клавиатуры можно осуществить прямым обращением к ячейке 0040:0017h.

Тот же пример без использования int 16h

MovES, 40h

MovSI, 17

C:…………………. ; основная часть программы

MovAL, ES:[SI]; результат этой команды такой же, как и у функции ah=02hint 16h

AndAL, 04h

Jzc

Movax, 4c00h; выход из программы

Int21h

1.4 Описание алгоритмов вывода чисел

Вывод числа в 2 с/с

1. Занесите число для вывода в регистр(например в bl).

2. Выполните сдвиг на один разряд влево через флаг переноса

3. Обнулите вспомогательный регистр (например dl).

4. выполните сдвиг dl на один разряд влево так , чтобы содержимое флага переноса попало в младший бит регистра dl.

5. прибавьте к регистру dlконстанту 30h для преобразования числа в ASCII-код символа данного числа и выведите на экран полученный символ.

6. Выполните шаги 2-5 восемь раз для вывода всего байта.

Схема выполнения сдвигов:

К-во Просмотров: 1047
Бесплатно скачать Отчет по практике: Микропроцессорные системы