- •Команды языка ассемблера
- •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.6.1.1 Чтение клавиатуры.
Работа с клавиатурой - основное средство работы пользователя с ПК. DOS обеспечивает несколько функций, через которые ассемблерная программа может получить ввод с клавиатуры; мы обсудим только одну из этих функций.
Простейший способ чтения клавиатуры - это использование функции DOS номер 1. Функции DOS вызываются с помощью помещения номера функции в AH и затем вызова инструкции INT 21h. Символ, набранный с клавиатуры, возвращается в AL.
Например, когда выполняется код
...
MOV AH,1
INT 21h
...
DOS помещает введенный с клавиатуры символ в AL. Заметим, что если не было набранных символов, DOS будет ждать, пока клавиша не будет нажата, поэтому эта функция может ожидать неопределенно долгое время.
10.6.1.2 Вывод символов на экран.
ПК работает со всеми видами дисплеев, начиная от цветного текстового до графических с высоким разрешением, но сейчас мы рассмотрим просто вывод символов.
Функция DOS 2 - это простейший способ вывести символ. Для этого нужно поместите в AH 2 и в DL - символ, затем обратитесь к DOS через INT 21h. Следующий фрагмент прграммы отображает каждый введенный символ на экране.
...
MOV AH,1
INT 21h ; получить символ
MOV AH,2
MOV DL,AL ; поместить символ из AL в DL
INT 21h ; отобразить символ
...
При выводе на экран значений переменных необходимо явно преобразовать переменные в символьные строки перед выводом. Аналогично DOS знает только как читать символы и строки с клавиатуры, а необходимо написать программу для преобразования символов и строк, введенных с клавиатуры в другие типы данных.
10.6.1.3 Завершение программ.
Для завершения программы выберем функцию DOS 4Ch. Фрагмент завершения программы будет выглядеть следующим образом:
…
MOV AH,4Ch ;функция DOS завершения программы
INT 21h ;завершение прграммы
END
10.6.2 BIOS.
В отличие от DOS и прикладных программ, BIOS (базовая система ввода-вывода) не загружается с диска. BIOS хранится в ПЗУ, в части адресного пространства микропроцессора, зарезервированного для системных функций.
BIOS - это низкоуровневая программа на ПК; даже DOS использует функции BIOS для управления аппаратурой. Лучше использовать функции BIOS, чем управлять аппаратурой напрямую, поскольку подобно DOS BIOS может маскировать отличия между компьютерами и устройствами. С другой стороны Вы должны использовать функции DOS вместо функций BIOS, когда это возможно, поскольку программы, которые используют BIOS, могут конфликтовать с другими программами и становятся менее переносимыми на другие модели компьютеров.
10.6.2.1 Выбор режимов дисплея.
Одна из главных причин использовать BIOS для управления дисплеем, поскольку DOS не обеспечивает поддержку всех богатых возможностей дисплеев на ПК. Только вызвав функции BIOS, можно установить режим экрана, управлять цветами, получить информацию о дисплейном адаптере и т.д. Например, следующий код заставляет BIOS установить экран в четырехцветный графический режим на CGA:
...
MOV AH,0 ; установка номера функции BIOS
MOV AL,4 ; номер режима для 320х200 4-х цветной графики
INT 10h ; вызов прерывания BIOS для установки режима
...
BIOS обеспечивает кроме управления дисплеем много других функций, включая обработку ввода с клавиатуры и управления диском. Однако лучше выполнять эти операции через функции DOS.
Иногда совершенно необходимо работать с аппаратурой напрямую. Например, коммуникационные программы управляют последовательным портом ПК напрямую через инструкции IN и OUT, поскольку ни DOS ни BIOS не обеспечивают поддержки последовательного порта. Аналогично, высокопроизводительная графика должна производиться через доступ к дисплейной памяти напрямую, поскольку DOS вообще не поддерживает графики, а BIOS делает это крайне медленно.