- •Команды языка ассемблера
- •3.2.1 Программные сегменты. Директива assume
- •6. Арифметические команды ……………………………………………….
- •Архитектура пк.
- •Регистры.
- •Регистры общего назначения.
- •1.1.2. Сегментные регистры
- •1.1.3 Регистр флагов
- •Организация памяти.
- •1.3. Представление данных
- •1.3.1 Типы данных
- •1.3.2 Представление символов и строк
- •Операторы программы на ассемблере
- •2.1 Команды языка ассемблера
- •2.2. Режимы адресации и форматы машинных команд
- •3. Псевдооператоры
- •3.1 Директивы определения данных
- •3.2 Структура программы на ассемблере
- •3.2.1 Программные сегменты. Директива assume
- •Начальная загрузка сегментных регистров
- •Упрощенная директива сегментации
- •4. Ассемблирование и компоновка программы.
- •5. Команды пересылки данных
- •5.1 Команды общего назначения
- •5.2 Команды работы со стеком
- •4.3 Команды ввода-вывода
- •5.4 Команды пересылки адреса
- •5.5 Команды пересылки флагов
- •6. Арифметические команды
- •Арифметические операции над целыми двоичными числами.
- •6.1.1 Сложение и вычитание.
- •6.1.2 Команды приращения и уменьшения приемника на единицу
- •6.2 Умножение и деление.
- •6.3 Изменение знака.
- •7. Логические операции
- •8. Сдвиги и циклические сдвиги
- •9. Строковые операции
- •10. Логика и организация программ
- •10.1 Безусловные переходы
- •10.2 Условные переходы
- •10.3 Циклы
- •10.4 Процедуры в языке ассемблера
- •10.5 Прерывания int
- •10.6 Системное программное обеспечение
- •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, когда это возможно.
10.6.1 DOS
DOS (дисковая операционная система - так же известна как MS DOS и PC DOS) - это программа, которая управляет Вашим компьютером с момента чтения диска при включении компьютера и до момента выключения. DOS занимает часть памяти. DOS так же обеспечивает широкий набор функций, используемых каждой прикладной программой. Это через функции DOS прикладная программа читает и пишет файлы, работает с клавиатурой, распределяет память, выполняет другие программы и даже устанавливает и получает время суток. Например, код
...
MOV AH,2 ; функция DOS для отображения символа
MOV DL,'a' ; a - символ для отображения
INT 21h ; вызов DOS для выполнения функции
...
вызывает функцию DOS "вывод на дисплей" для того, чтобы вывести символ "а" в текущую позицию курсора на экране.
Функции DOS используются для выполнения таких операций, как чтение с клавиатуры или из файла, вывода на экран или в файл и вывода на принтер.