Главная Обратная связь

Дисциплины:






Лабораторная работа 5



Использование средств BIOS на языке Ассемблер

С помощью Ассемблера выполнить следующие задания, используя прерывания BIOS int 10h и int 16h.

 

ЗАДАНИЕ
Ввести символьный массив, отсортировать и вывести на экран.
Ввести символьный массив, и вывести на экран встречающиеся в нем буквы по алф.
Ввести символьный массив, и вывести на экран отдельно гласные и согласные по алфавиту
Ввести символьный массив, и вывести на экран отдельно гласные и согласные в том порядке, как они встречаются.
Ввести символьный массив, и вывести на экран буквы в порядке убывания частоты встречаемости.
Ввести символьный массив, и вывести на экран, и вывести его в обратном порядке.
Ввести символьный массив, и вывести на экран буквы в порядке возрастания частоты встречаемости.
Ввести символьный массив, и вывести на экран его анаграмму (перемешать буквы).
Ввести символьный массив, и вывести на экран по словам, выводя каждое слово разным цветом.
Ввести символьный массив, и вывести на экран содержащиеся в нем слова в столбик.
В графическом режиме нарисовать замкнутый многоугольник, пользуясь курсорными клавишами.
В графическом режиме нарисовать произвольную кривую, пользуясь курсорными клавишами.
В графическом режиме нарисовать множество пикселов на экране, пользуясь курсорными клавишами.
В графическом режиме заполнить экран произвольными символами, пользуясь курсорными клавишами.
В графическом режиме отредактировать содержимое экрана, вставляя или стирая пиксели и пользуясь курсорными клавишами.
В графическом режиме нарисовать геометрическую фигуру и вывести надпись, пользуясь курсорными клавишами.
В графическом режиме нарисовать схематическое изображение кошки, пользуясь курсорными клавишами.
В графическом режиме нарисовать схематическое изображение дерева, пользуясь курсорными клавишами.
В графическом режиме нарисовать схематическое изображение домика, пользуясь курсорными клавишами.
В графическом режиме нарисовать схематическое изображение самого себя, пользуясь курсорными клавишами.

 

 

Краткие сведения о прерываниях 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=графическая строка

 

 

 

 





sdamzavas.net - 2019 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...