- •В.Ф. Гузик, с.М. Гушанский, в.А. Каляев, а.О. Пьявченко, а.И. Костюк основы программирования на языке «ассемблер»
- •1. Введение для кого написано это учебное пособие.
- •2. Предварительные сведения или азы, которые необходимо знать!
- •2.1. Ассемблер, что это такое?
- •2.2. Как писать ассемблерную программу, и какие программы нужны для ее последующей трансляции.
- •2.3. Системы счисления
- •2.4. Оперативная память.
- •2.5. Стек
- •Сегментация памяти.
- •Программная модель процессора.
- •Система команд.
- •Inc word ptr [bx]
- •2.9 Выделение памяти под переменные и массивы
- •2.10 Exe и com программы
- •2.11 Трансляция ассемблерной программы
- •Passes: 1
- •Примеры программирования на ассемблере.
- •3.1. Наша первая программа.
- •3.2. Работа с клавиатурой и экраном.
- •Прерывания dos для работы с клавиатурой.
- •Функция 7 прерывания int 21h
- •Функция 6 прерывания int 21h.
- •Функция 0ah прерывания int 21h.
- •Прерывания bios для работы с клавиатурой
- •1. Функция 0 прерывания int 16h
- •Входные параметры: нет
- •2. Функция 1 прерывание int 16h
- •Входные параметры: нет
- •Прерывания dos для работы с экраном
- •1. Функция 2 прерывания int 21h
- •2. Функция 9 прерывание int 21h
- •Прерывания bios для работы с экраном
- •Функция 1 прерывание int 10h
- •Функция 2 прерывание int 10h
- •Функция 3 прерывание int 10h
- •Функция 6 прерывание int 10h
- •Функция 9 прерывание int 10h
- •Функция 0eh прерывания int 10h
- •Задания к лабораторной работе «Клавиатура и экран»
- •Работа с гибкими дисками.
- •Inc nomber
- •3.4. Перехват прерываний и создание резидентных программ
- •Inst: mov ah, 9
- •Inst: mov ah,9
- •3.5. Работа со звуком.
- •Отладка программ.
- •Приложение
- •Сервисные прерывания dos.
- •Сервисные прерывания bios.
- •Int 10h, функция 07h. Инициализация или прокрутка окна вниз.
- •Int 10h, функция 08h. Чтение символа и атрибута в позиции курсора.
- •Int 10h, функция 09h. Запись символа и атрибута в позицию курсора.
- •Int 10h, функция 0ah. Запись символа в позицию курсора.
- •Int 10h, функция 0eh. Запись символа в режиме телетайпа.
- •Int 10h, функция 10h, подфункция 03h. Переключение бита «мерцание/яркость».
- •Int 10h, функция 13h. Запись строки в режиме телетайпа.
- •Int 15h, функция 86h. Программная задержка на заданное число микросекунд.
- •Int 16h, функция 00h (10h). Чтение символа с клавиатуры.
- •Int 16h, функция 01h (11h). Чтение символа с клавиатуры.
- •Int 16h, функция 02h (12h). Получение статуса клавиатуры.
- •Int 1ah, функция 0h. Число тиков таймера.
- •Коэффициенты пересчета для нот
- •Значение цветов в байте атрибута
- •Буфер клавиатуры.
- •Литература
- •7. Содержание
Сервисные прерывания bios.
INT 10h, функция 00h. Установка видеорежима.
Устанавливает текущий видеорежим.
При вызове: ah = 00h
al = видеорежим:
03h – текстовый 80*25
04h – графический 320*200
10h – графический 640*350
12h – графический 640*480
INT 10h, функция 01h. Установка конфигурации курсора.
Позволяет задать начальную и конечную строки развертки курсора в текстовых видеорежимах.
При вызове: ah = 01h
ch = начальная (верхняя) строка развертки
сl = конечная (нижняя) строка развертки
INT 10h, функция 02h. Установка позиции курсора.
Задает положение курсора на экране в текстовых координатах на указанной видеостранице.
При вызове: ah = 02h
bh = № видеостраницы
dh = строка
dl = столбец
INT 10h, функция 03h. Получение позиции и размера курсора.
Возвращает положение курсора на экране для заданной видеостраницы.
При вызове: ah = 03h
bh = № видеостраницы
При возврате: ch = начальная (верхняя) строка развертки курсора
cl = конечная (нижняя) строка развертки курсора
dh = строка
dl = столбец
INT 10h, функция 06h. Инициализация или прокрутка окна вверх.
Инициализирует окно с указанными координатами, заполняя его пробелами с заданным атрибутом, или прокручивает содержимое окна вверх на заданное число строк. Действует только для активной видеостраницы. При прокрутке появляющиеся снизу строки заполняются пробелами с заданным атрибутом.
При вызове: ah = 06h
al = число строк прокрутки; если al = 0, все окно очищается
bh = атрибут символов в окне
ch = Y координата верхнего левого угла окна
cl = X координата верхнего левого угла окна
dh = Y координата нижнего правого угла окна
dl = X координата нижнего правого угла окна
Int 10h, функция 07h. Инициализация или прокрутка окна вниз.
Инициализирует окно с указанными координатами, заполняя его пробелами с заданным атрибутом, или прокручивает содержимое окна вниз на заданное число строк. Действует только для активной видеостраницы. При прокрутке появляющиеся сверху строки заполняются пробелами с заданным атрибутом.
При вызове: ah = 07h
al = число строк прокрутки; если al = 0, все окно очищается
bh = атрибут символов в окне
ch = Y координата верхнего левого угла окна
cl = X координата верхнего левого угла окна
dh = Y координата нижнего правого угла окна
dl = X координата нижнего правого угла окна
Int 10h, функция 08h. Чтение символа и атрибута в позиции курсора.
Возвращает ASCII код символа, расположенного в позиции курсора на заданной видеостранице, и его атрибут.
При вызове: ah = 08h
bh = № видеостраницы
При возврате: al =ASCII код символа
ah = атрибут
Int 10h, функция 09h. Запись символа и атрибута в позицию курсора.
Записывает символ и его атрибут в текущую позицию курсора. Курсор при этом не смещается, а остается в исходной позиции. Коэффициент повторения позволяет выводить строки одинаковых символов (но курсор не смещается!). Если коэффициент повторения равен 0, на экран ничего не выводится.
При вызове: ah = 09h
al = ASCII код символа
bh = № видеостраницы
bl = атрибут
cx = коэффициент повторения.