Использование средств 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; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!