Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР№4_СПО_Балыбердин_Н.А

..docx
Скачиваний:
36
Добавлен:
05.09.2020
Размер:
146.92 Кб
Скачать

ФГБОУ ВО Уфимский государственный авиационный технический университет

Кафедра АСУ

ОТЧЕТ

по лабораторной работе №4

Тема: «ПРОГРАММИРОВАНИЕ СИСТЕМНЫХ ФУНКЦИЙ BIOS И DOS ДЛЯ РАБОТЫ С КЛАВИАТУРОЙ»

по дисциплине: «Системное программное обеспечение»

Выполнили: ст. гр. ИВТ-414

Балыбердин Н.А.

Проверил:

Преподаватель кафедры АСУ

Лянцев О.Д.

Цель работы: Целью настоящей работы является изучение возможностей базовой системы ввода-вывода и дисковой операционной системы для программирования ввода информации с клавиатуры.

Задания:

  1. Напишите и выполните, пользуясь отладчиком DEBUG, команды для установки курсора по координатам: строка 20, столбец 58.

Команды:

Mov ah,02

Mov bh,00

Mov dh,13

Mov dl,39

Int 10

Mov ah,10

Int 16

Скриншоты:

10 функция, прерывания 16 была добавлена чтобы сделать вышестоящий скриншот.

  1. Напишите и выполните, пользуясь отладчиком DEBUG, команды для очистки экрана, начиная с 0-го столбца 12 строки, до 79-го столбца 22-й строки.

Команды:

Mov ax,0600

Mov bh,07

Mov cx,0c00

Mov dx,164f

Int10

Скриншот:

  1. Пользуясь отладчиком 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

Скриншот:

  1. Используя отладчик 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-кодам.

  1. Напишите и выполните программу, которая переводит курсор в 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 чтоб показать положение курсора )

Нажата другая клавиша(курсор на том же месте)

Ответы на контрольные вопросы:

  1. Какие шестнадцатеричные значения строки и столбца соответствуют нижнему правому углу экрана?

Экран состоит из 25 строк по 80 символов, нумерация начинается с 0. Следовательно, 2410=1816 и 7910=4F16

  1. В какие регистры помещается скэн-код и код символа при нажатии символьной клавиши?

Функция AH=00h помещает в регистр AL очередной ASCII-код символа, введенного с клавиатуры, а в регистр AH заносит скэнкод этого символа.

3. Какая информация будет находиться в регистре AL после нажатии функциональной клавиши?

В регистре AL будет 0

Вывод:

Изучили возможностей базовой системы ввода-вывода и дисковой операционной системы для программирования ввода информации с клавиатуры.

УФА-2020