- •Команды языка ассемблера
- •3.2.1 Программные сегменты. Директива assume
- •6. Арифметические команды ……………………………………………….
- •1.3. Представление данных
- •Операторы программы на ассемблере
- •2.1 Команды языка ассемблера
- •2.2. Режимы адресации и форматы машинных команд
- •3. Псевдооператоры
- •3.2 Структура программы на ассемблере
- •3.2.1 Программные сегменты. Директива assume
- •5. Команды пересылки данных
- •5.1 Команды общего назначения
- •5.2 Команды работы со стеком
- •5.5 Команды пересылки флагов
- •6. Арифметические команды
- •6.1.1 Сложение и вычитание.
- •7. Логические операции
- •8. Сдвиги и циклические сдвиги
- •9. Строковые операции
- •10. Логика и организация программ
- •10.1 Безусловные переходы
- •10.2 Условные переходы
- •10.3 Циклы
- •10.5 Прерывания int
- •10.6 Системное программное обеспечение
- •10.6.1 Dos
- •10.6.1.1 Чтение клавиатуры.
- •10.6.1.2 Вывод символов на экран.
- •10.6.1.3 Завершение программ.
- •10.6.2.1 Выбор режимов дисплея.
- •11. Дисковая память
- •11.1 Оглавление диска (каталог)
- •11.2 Таблица распределения файлов
- •11.3 Операции ввода-вывода на диск
- •11.3.1 Запись файла на диск
- •11.3.1.1 Данные в формате asciiz
- •11.3.1.2 Файловый номер
- •11.3.1.3 Создание дискового файла
10.5 Прерывания int
Команда INT прерывает обработку программы, передает управление в DOS или BIOS для определенного действия и затем возвращает управление в прерванную программу для продолжения обработки. Наиболее часто прерывание используется для выполнения операций ввода или вывода.
Формат команды
INT тип_прерывания
Для выхода из программы на обработку прерывания и для последующего возврата команда INT выполняет следующие действия:
- уменьшает указатель стека на 2 и заносит в вершину стека содержимое флагового регистра;
- очищает флаги TF и IF;
- уменьшает указатель стека на 2 и заносит содержимое регистра CS в стек;
- уменьшает указатель стека на 2 и заносит в стек значение командного указателя;
- вычисляет адрес вектора прерывания, умножая тип_прерывания на 4;
загружает второе слово вектора прерываний в регистр CS;
загружает в IP первое слово вектора прерывания;
- обеспечивает выполнение необходимых действий;
- восстанавливает из стека значение регистра и возвращает управление в прерванную программу на команду, следующую после INT.
Этот процесс выполняется полностью автоматически. Необходимо лишь определить сегмент стека достаточно большим для записи в него значений регистров.
В данной главе рассмотрим два типа прерываний: команду BIOS INT 10H и команду DOS INT 21H для вывода на экран и ввода с клавиатуры. В последующих примерах в зависимости от требований используются как INT 10H так и INT 21H.
10.6 Системное программное обеспечение
Микропроцессор является только частью компьютера, а конфигурация аппаратного обеспечения и операционная система компьютера оказывает большое влияние на программирование на языке ассемблера.
Без знания конфигурации аппаратуры и операционной системы программы не будут иметь возможности сделать ввод и вывод и даже завершиться. Ниже покажем некоторые основные возможности ПК.
Все ПК имеют клавиатуру, дисплейный адаптер, монитор и накопитель на гибком диске. Так же часто устанавливаются модемы, принтеры, мышка и жесткие диски. Каждое из этих устройств управляется сложной серией обращений к портам ввода-вывода или памяти (или обоим). Например, выбор нового видеорежима на цветном графическом адаптере (CGA) требует более 30 инструкций OUT; для управления модема или диска управляющие последовательности еще более сложны. Системное программное обеспечение ПК уже делает большинство этой работы.
Системное программное обеспечение - это программы, которые используются как управляющий и интерфейсный слой между прикладными программами, такими как Ассемблер и аппаратурой Вашего компьютера.
В частности, системные программы управляют сложными интерфейсами к отдельным устройствам. Например, для того, чтобы ПК обработал нажатие одной клавиши, требуется несколько сотен команд на языке ассемблера, но Ваша ассемблерная программа может получить символ от клавиши за вызов только одной системной функции. Это обеспечивают два главных системных компонента ПК: DOS и BIOS (базовая система ввода-вывода).
Системные программы DOS и BIOS используются как управляющий и интерфейсный слой между прикладными программами и аппаратурой ПК. Прикладные программы всегда имеют возможность управлять аппаратурой напрямую, но необходимо использовать DOS или BIOS, когда это возможно.