Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы по Абрамову.doc
Скачиваний:
20
Добавлен:
07.06.2015
Размер:
676.86 Кб
Скачать

Контрольные вопросы

1. Входит ли этот символ в число реально введенных символов, которое регистрируется в буфере?

2. В каком байте буфера регистрируется это число?

3. Обязательно ли предварительно заполнять буфер символом $?

4. Символы строки вводятся в буфер сразу целой строкой или по отдельности по мере их набора на клавиатуре при использовании функции DOS – 0ah?

Лабораторная работа № 6

Исследование процесса ввода информации в память ПЭВМ с использованием клавиатуры и функции DOS 01h.

Используемая в предыдущей лабораторной работе №5 функция 0ah представляет удобный, но ограниченный способ ввода данных. Например, с помощью этой функции нельзя ввести в память ЭВМ информацию, превышающую 255 символов клавиатуры. Поэтому чаще всего используют функции посимвольного ввода, позволяющие организовать буфер для вводимых данных, значительно превышающий 255 байт и, кроме того, контролировать отображение символов на экране, реакцию программы на функциональные и управляющие клавиши и т.д.

Функция DOS 01h: Считать символ из STDIN с эхом, ожиданием и проверкой на Ctrl – Break

Вход: ah=01h

Выход: al=ASCII – код символа или 0. Если al=0, второй вызов этой функции возвратит в al расширенный ASCII – код символа.

При чтении с помощью этой функции введённый символ автоматически отображается на экране (посылается в устройство STDOUT – так что его можно перенаправить в файл). При нажатии Ctrl – C или Ctrl – Break выполняется команда int 23h – выход из программы.

Таким образом, в данном задании необходимо составить программу, которая, используя функцию DOS – 01h, вводит строку символов клавиатуры в память ЭВМ с последующим выводом их на экран монитора. В этом случае количество вводимых символов в буфер также удобно задавать в регистре cx и использовать команду loopnz. Как и в предыдущих программах, ввод/вывод информации сопроводить необходимыми сообщениями. Кроме того, исследуйте реакцию программы при вводе данных с клавиатуры, если во время набора символов нажать клавиши:

  1. Ctrl – Break;

  2. Ctrl – C

  3. Backspace;

  4. Enter;

  5. Клавиши со стрелками и некоторые другие.

Сделайте соответствующие выводы.

Отметим, что для раздельного ввода символов клавиатуры в память ЭВМ, проверки её на нажатие клавиши имеются и другие функции DOS, такие как 06h, 07h, 08h, 0bh, 0ch, а также средства BIOS, подробно рассмотренные в [2].

Контрольные вопросы

1. Будет ли реагировать программа на нажатие клавиш Ctrl – Break и Ctrl – C при использовании функции DOC – 0ah?

2. Какое назначение имеет функция DOS – 01h?

3. Ограничивается ли размер буфера 255 вводимыми символами клавиатуры при использовании этой функции?

4. Как реагирует программа при использовании функции DOC – 0ah на нажатие клавиш Backspace, Enter, Ctrl – Break и Ctrl – C в момент ввода основных символов клавиатуры?

Лабораторная работа № 7

Исследование процесса суммирования на ПЭВМ однобайтовых чисел с использованием команды add al,[si]

В данной работе необходимо составить программу, которая выполняет следующие действия. В программе в области, определяемой оператором .DATA, организовать массив из двух однобайтовых чисел без знака. Затем программно сложить эти числа и результат сложения вывести на экран монитора, снабдив его соответствующим сообщением. Сумма должна занимать одно слово. Повторить то же самое для чисел со знаком. Отрицательный результат выводить на экран монитора, как в прямом, так и в дополнительном коде.

Отметим, что отрицательные числа в ЭВМ автоматически представляются в дополнительном коде. Признаком отрицательного числа является наличие “1” в знаковом разряде числа.