Министерство образования и науки Российской Федерации
ФГБОУ ВПО «АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ»
Физико-Технический Факультет
Кафедра Вычислительной техники и электроники
Лабораторная работа №1.
(по курсу «Организация и архитектура вычислительных систем»)
Выполнил: ст-т 2 курса 515 гр.
___________ __ Голод В.С.
Проверил: к.ф.-м.н., доцент
______________ Шайдуров А. А.
Барнаул 2012.
Постановка задачи.
Составить программу, которая обрабатывает нажатия клавиш на клавиатуре и выводит символ «e» на экран.
Алгоритм решения задачи.
Начало
Клавиша
e?
нет
нет
Клавиша
Esc?
да
Вывод на экран e.
да
Конец
Список используемых флагов, регистров.
-
В регистр ax занёсся сегмент дата, флаг I=1 внешние прерывания разрешены.
-
В регистр as занесли регистр ax.
-
В регистр ah занесли 8 функцию. Т.е когда вводим клавишу какую-то не «e», её код заносится в регистр al.
-
Переместили данные из регистра al в регистр dl.
-
Сравнили то, что в регистре dl с нужным символом. Флаг P=1. P - флаг четности; устанавливается в случае четного числа единиц результата.
-
Сравнил клавишу с esc. P=0, A=1. A - флаг вспомогательного переноса; устанавливается при наличии переноса из младшей тетрады в старшую; используется только командами десятичной арифметики.
-
Т.к. ввели клавишу не «e» и не «Esc», по метке на вверх.
-
П. 1 и 2 повторили. Ввели клавишу e, записалась в ax.
-
Переместили данные из регистра al в регистр dl.
-
Сравнили то, что в регистре dl с нужным символом. P=1, A=0, Z=1. Z - флаг нуля; устанавливается при нулевом результате.
-
В регистр ah внесли 2 функцию.
-
Сравнили символ с Esc. Z=0, A=1, P=0.
-
Т.к. клавиша не Esc, то по метке вверх.
-
П. 1 и 2 повторили. Ввели клавишу esc, записалась в ax.
-
Переместили данные из регистра al в регистр dl.
-
Сравнили то, что в регистре dl с нужным символом. A=0, C=1, S=1. S - флаг знака; устанавливается в единицу при отрицательном результате операции, полученном путем выполнения арифметико-логических команд. C - флаг переноса; фиксирует значение переноса (заема) при сложении (вычитании), а также значение выдвигаемого бита при сдвигах;
-
Сравнили символ с Esc. Z=1, P=1, C=0, S=0. S - флаг знака; устанавливается в единицу при отрицательном результате операции, полученном путем выполнения арифметико-логических команд.
-
В регистр ah занесли функцию 4сh.