ЛР№4_СПО_Балыбердин_Н.А
..docxФГБОУ ВО Уфимский государственный авиационный технический университет
Кафедра АСУ
ОТЧЕТ
по лабораторной работе №4
Тема: «ПРОГРАММИРОВАНИЕ СИСТЕМНЫХ ФУНКЦИЙ BIOS И DOS ДЛЯ РАБОТЫ С КЛАВИАТУРОЙ»
по дисциплине: «Системное программное обеспечение»
Выполнили: ст. гр. ИВТ-414
Балыбердин Н.А.
Проверил:
Преподаватель кафедры АСУ
Лянцев О.Д.
Цель работы: Целью настоящей работы является изучение возможностей базовой системы ввода-вывода и дисковой операционной системы для программирования ввода информации с клавиатуры.
Задания:
-
Напишите и выполните, пользуясь отладчиком DEBUG, команды для установки курсора по координатам: строка 20, столбец 58.
Команды:
Mov ah,02
Mov bh,00
Mov dh,13
Mov dl,39
Int 10
Mov ah,10
Int 16
Скриншоты:
10 функция, прерывания 16 была добавлена чтобы сделать вышестоящий скриншот.
-
Напишите и выполните, пользуясь отладчиком DEBUG, команды для очистки экрана, начиная с 0-го столбца 12 строки, до 79-го столбца 22-й строки.
Команды:
Mov ax,0600
Mov bh,07
Mov cx,0c00
Mov dx,164f
Int10
Скриншот:
-
Пользуясь отладчиком DEBUG, введите с клавиатуры дату в формате дд/мм/гг в центре предварительно очищенного экрана.
Команды:
Mov ah, 02
Mov bh, 00
Mov dh, 0c
Mov dl, 24
Int 10
Mov ax ,0300
Mov ds, ax
Mov dx, 0000
Mov bx, dx
Mov al, 09
Mov [bx], al
Mov ah, 0c
Mov al, 0a
Int 21
Скриншот:
-
Используя отладчик DEBUG, проверьте воздействие на содержимое регистра AX нажатие клавиш на клавиатуре. Для этого введите следующие команды:
MOV AH,00
INT 16h
JMP 100
Используя команду U 100,104, дисассемблируете программу и с помощью G 104 выполните команды MOV и INT. Выполнение программы остановится, и процессор перейдет в ожидание ввода. Для проверки регистра AH нажмите любую клавишу. Нажимая различные клавиши, проверьте работу этой программы.
Скриншоты:
Нажал латинские буквы q, a, z:
q:
a:
z:
В регистре AL значения менялись в порядке: 71, 61, 7A, что соответствует 16-ричным ASCII-кодам.
-
Напишите и выполните программу, которая переводит курсор в 24 строку и нулевой столбец, если нажата клавиша PgDn.
Код программы:
.MODEL SMALL
.CODE
ORG 100h
BEGIN:
Mov ah,8
int 21h
cmp al,0
jne skip
int 21h
cmp al,51h
jne skip
mov ah,02
mov bh,00
mov dh,24
mov dl,00
int 10h
skip: mov ah,02
mov dl,'N'
int 21h
mov ah,10h
int 16h
RET
END BEGIN
Оттранслировали и скомпоновали:
Скриншоты:
Ждет нажатия кнопки
Нажата клавиша PgDn: переводит курсор в 24 строку и нулевой столбец(вывожу N чтоб показать положение курсора )
Нажата другая клавиша(курсор на том же месте)
Ответы на контрольные вопросы:
-
Какие шестнадцатеричные значения строки и столбца соответствуют нижнему правому углу экрана?
Экран состоит из 25 строк по 80 символов, нумерация начинается с 0. Следовательно, 2410=1816 и 7910=4F16
-
В какие регистры помещается скэн-код и код символа при нажатии символьной клавиши?
Функция AH=00h помещает в регистр AL очередной ASCII-код символа, введенного с клавиатуры, а в регистр AH заносит скэнкод этого символа.
3. Какая информация будет находиться в регистре AL после нажатии функциональной клавиши?
В регистре AL будет 0
Вывод:
Изучили возможностей базовой системы ввода-вывода и дисковой операционной системы для программирования ввода информации с клавиатуры.
УФА-2020