Использование средств BIOS на языке Ассемблер
С помощью Ассемблера выполнить следующие задания, используя прерывания BIOS int 10h и int 16h.
№ | ЗАДАНИЕ |
1 | Ввести символьный массив, отсортировать и вывести на экран. |
2 | Ввести символьный массив, и вывести на экран встречающиеся в нем буквы по алф. |
3 | Ввести символьный массив, и вывести на экран отдельно гласные и согласные по алфавиту |
4 | Ввести символьный массив, и вывести на экран отдельно гласные и согласные в том порядке, как они встречаются. |
5 | Ввести символьный массив, и вывести на экран буквы в порядке убывания частоты встречаемости. |
6 | Ввести символьный массив, и вывести на экран, и вывести его в обратном порядке. |
7 | Ввести символьный массив, и вывести на экран буквы в порядке возрастания частоты встречаемости. |
8 | Ввести символьный массив, и вывести на экран его анаграмму (перемешать буквы). |
9 | Ввести символьный массив, и вывести на экран по словам, выводя каждое слово разным цветом. |
10 | Ввести символьный массив, и вывести на экран содержащиеся в нем слова в столбик. |
11 | В графическом режиме нарисовать замкнутый многоугольник, пользуясь курсорными клавишами. |
12 | В графическом режиме нарисовать произвольную кривую, пользуясь курсорными клавишами. |
13 | В графическом режиме нарисовать множество пикселов на экране, пользуясь курсорными клавишами. |
14 | В графическом режиме заполнить экран произвольными символами, пользуясь курсорными клавишами. |
15 | В графическом режиме отредактировать содержимое экрана, вставляя или стирая пиксели и пользуясь курсорными клавишами. |
16 | В графическом режиме нарисовать геометрическую фигуру и вывести надпись, пользуясь курсорными клавишами. |
17 | В графическом режиме нарисовать схематическое изображение кошки, пользуясь курсорными клавишами. |
18 | В графическом режиме нарисовать схематическое изображение дерева, пользуясь курсорными клавишами. |
19 | В графическом режиме нарисовать схематическое изображение домика, пользуясь курсорными клавишами. |
20 | В графическом режиме нарисовать схематическое изображение самого себя, пользуясь курсорными клавишами. |
|
|
Краткие сведения о прерываниях BIOS
Перед вызовом соответствующей функции необходимо занести передаваемые ей параметры в требуемые регистры. В частности, код функции заносится в регистр AH, а код подфункции – в регистр AL.Результат выполнения функции также заносится в регистры. Например, чтобы поместить код символа, вводимого с клавиатуры, в переменные scancodиasciicod,необходимо задать в регистре AHкод функции 00, выполнить команду прерывания INTс параметром 16h,а затем извлечь информацию из регистров AH(скен-код символа) и AL(ascii-код символа), и перемеcтить их в память для переменных :
|
|
……………………………………………………………………………………………………
mov ah,0
Int 16h
Mov scancod,ah
Mov asciicod,al
……………………………………………………………………………………………………
Опишем сразу остальные функции прерывания 16h:
Функция 01h.Получение состояния клавиатуры.Возвращает состояние буфера без извлечения из него символа.
Вход: AH=01h.
Выход: если буфер пуст, флаг ZF=1;
если в буфере есть ожидающие символы, то ZF=0, а скен- и ascii- коды символа находятся в регистрах ALиAH, как и для функции 00.
Функция 01h.Получение флагов клавиатуры.Возвращает байт состояния управляющих клавиш.
Вход: AH=02h.
Выход: AL=флаги. Биты байта флагов имеют следующие значения:
0 – нажата левая клавиша Shift
1 – нажата правая клавиша Shift
2 – нажата клавиша Ctrl
3 – нажата клавиша ALT
4 – включён режим Scroll Lock
5 – включён режим Num Lock
|
|
6 – включён режим Caps Lock
7 – включён режим Insert
Функции прерывания 10h (функции видеорежимов).
Функция 00h. Установка видеорежима.
Вход: AH=00h
AL=видеорежим.
03h– текстовый, 80x25, 16 цветов
12h –графический, 640х480, 16 цветов (VGA)
12h –графический, 320х200, 256 цветов (VGA)
Функция 02h.Установка позиции курсора.
Данная функция работает как в текстовом, так и в графическом режимах. Однако, в графическом режиме курсор не виден.
Вход: AH=02h
BH=номер видеостраницы (0–3)
DH=номер видеостроки (строки в текстовом режиме нумеру-
ются снизу вверх от 1, строки в графическом режиме нумеруются
сверху вниз от 0.)
DL=номер видеостолбца
Функция 09h.Запись символа и атрибута в позицию курсора.
Данная функция также работает как в текстовом, так и в графическом режимах.
Вход: AH=09h
AL=символ
BH=номер видеостраницы
BL=атрибут (текстовый режим), или цвет (графический реж.)
CX=коэффициент повторения
В текстовом режиме каждый символ, выводимый на экран, задаётся двумя байтами: байтом кода и байтом атрибута. Байт атрибута содержит информацию о цвете и яркости фона и символа в виде irgbIRGB, где irgb – биты яркости, красного, зелёного и синего цветов для фона, а IRGB соответственно – для символа. В графическом режиме код цвета представляет номер цветового регистра палитры, в котором содержится подробная информация по воспроизведению заданного цвета.
|
|
Функция 09h. Запись пиксела в заданную графическую позицию.
Вход: AH=0ch
AL=цвет
BH=номер видеостраницы
CX=графический столбец
DX=графическая строка
Список литературы
1. А.В. Гордеев, А.Ю. Молчанов. Системное программное обеспечение.
СПб, Питер, 2001.
2. Пустоваров В.И. Ассемблер: программирование и анализ корректности машинных программ. «Ирина», BHV, Киев, 2000. 480 с
3. Финогенов К.Г. Самоучитель по системным функциям MS DOS. М.: Радио и связь, Энтроп, 1995. – 382 с.,ил.
4. Юров В. Ассемблер. Учебник. СПб.:Питер, 2001. 624 с.: ил.
СОДЕРЖАНИЕ
Введение 3
Лабораторная работа 1 4
Лабораторная работа 2 6
Лабораторная работа 3 8
Лабораторная работа 4 12
Лабораторная работа 5 17
Список литературы 20
Дата добавления: 2018-05-12; просмотров: 294; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!