Дисплейные прерывания и функции

INТ 10h AX=00h- видеорежим

01h– установление размера и формы курсора

02h - установить курсора

03h – получение положения курсора

06h/07h – прокрутка вверх-вниз

0Ah-Записать символ

Прерывания и функции обслуживания клавиатуры

Int 16h – обслуживание клавиатур

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

Прерывания и функции обслуживания жестких дисков

Int 13h – обслуживание жесткого диска

AX=00h- сброс дисковой системы

01h– определение состояния дисковой системы

02h/03h - чтение/запись секторов диска

04h - Проверка секторов

Прерывания int 21h, его функции.

Основные функции DOS вызывает с помощью прерывания int 21h.

Группы функций прерывания int 21h:

1)Получение системной информации

30h – версия DOS

4Dh - узнать код завершения процесса;

2) Символьный ввод-вывод

3)Управление программами

4Ch – завершение программы

4) Управление памятью

48h – получение памяти для программы

49h – освобождение памяти для программы

44h – подключение драйверов

59h – обработка ошибок

Символьный ввод/вывод, функции.

Int 21h AH=01h– ввод с клавиатуры с эхо-выводом

06h - ввод без эхо-вывода

05h – вывод на принтер

02h – прокрутка вверх-вниз

09h – отобразить страницу которая заканчивается «$»

Прерывание и функции работы с мышью

INT 33h, AX = 0— Инициализация мыши

AX = 1— Показать курсор

AX = 2— Спрятать курсор

AX = 3 — Определить состояние мыши

ВХ = :

0 — нажата левая кнопка

1 — нажата правая кнопка

2 — нажата средняя кнопка

СХ = Х-координата

DX = Y-координата

AX = 0Ch— Установить обработчик событий

ES:DX = адрес обработчика СХ = условие вызова

0 — любое перемещение мыши

1 — нажатие левой кнопки

2 — отпускание левой кнопки

3 — нажатие правой кнопки

4 — отпускание правой кнопки

5 — нажатие средней кнопки

6 — отпускание средней кнопки

СХ = 0000h — отменить обработчик

Прерывание и функции системного таймера

Int 21h AX = 2Ah - Определить дату

СХ = год

DH = месяц

DL = день

AL = день недели (0 — воскресенье, 1 — понедельник...)

AX = 2Ch

СН = час

CL = минута

DH = секунда

DL = сотая доля секунды

2Bh— Установить дату

2Dh— Установить время

Команды передачи управления

Команда безусловного перехода

JMP <адрес перехода>

В качестве адреса команды перехода используются метки трех видов:

  • а) < имя > : nор ( nор - команда "нет операции");
  • б)< имя> label near (для внутрисегментных переходов);
  • в) <имя> label far (для внесегментных переходов).

Команды условного перехода

· <мнемоническая команда> <адрес перехода>
Мнемоника команд условного перехода:

· Команды перехода, которые начинаются с буквы j работают в связке с командой cmp

Команды безусловного перехода: синтаксис и область использования

Команды машинной программы выполняются в том порядке, как они записаны в памяти. Но время от времени этот естественный порядок выполнения команд приходится нарушать с тем, чтобы следующей выполнялась не очередная команда программы, а какая-то иная. Такую возможность обеспечивают команды перехода.

Если переход делается только тогда, когда выполнено некоторое условие, то такой переход называется условным, а если он делается независимо от каких-либо условий, то это безусловный переход.

Формат команды: JMP имя

Имя (метка) может иметь атрибут NEAR (близкая, т.е. в пределах одного и того же сегмента кода) или FAR (дальняя, т.е. такая, на которую можно переходить из других сегментов кода),short (короткий, Исп-ся, если адрес перехода находится в пределах со значением -128 to +127 от к-ды).

35. Команды условного перехода: мнемоника и таблица условных переходов, операнд команд

Команды перехода начинаются с j и работают в связке с cmp.

Пример:

Cmp eax, 42h

Jz metka2

Если регистр eax равен 42, то управление передастся первой команде после метки metka2.

код Значение(переход,если...) Условие
JA (X > Y) CF=0 & ZF=0
JAE (X >= Y) CF=0
JB (X<Y) CF=1
JBE (X <= Y) CF=1 or ZF=1
JC Если оба сущ. CF=1
JCXZ Jump if CX=0 регистр CX=0
JE (то же, что и JZ) (X = Y) ZF=1
JG (X > Y) с учетом знака ZF=0 SF=OF
JL (X <Y) с учетом знака SF != OF
JMP прыгает всегда -
JNA X не больше Y (для чисел без знака) CF=1 or ZF=1
JNAE X не больше или равно Y (для чисел без знака) CF=1
JNC Если нету CF=0
JP Если четное PF=1
JPO Если нечетное PF=0

Все команды перехода имеют один операнд: смещение для перехода

Организация циклов в ассемблере

Циклом называется любая многократно исполняемая последовательность инструкций

Этапы циклов:

1)Выборка команды

2)Формирование адреса следующей команды

3)Декодирование

4)Вычисление адресов операндов

5)Выборка операндов из ОП

6)Исполнение операции

7)Запись результатов в память

Передача параметров и процедур

Механизмы передачи параметров:

  • по значению;
  • по ссылке;
  • по возвращаемому значению;
  • по результату;
  • по имени;
  • отложенным вычислением.

Параметры можно передавать в одном из пяти мест:

  • в регистрах;
  • в глобальных переменных;
  • в стеке;
  • в потоке кода;
  • в блоке параметров.

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

Наши рекомендации