- •Assembler.
- •Организация выполняемых программ в ms – dos.
- •Система команд процессора Intel 86.
- •Директивы ассемблера
- •Основные группы команд.
- •Использование процедур в ассемблере.
- •Режим адресации в памяти и микропроцессоре Intel 86.
- •Определение физического адреса.
- •Связь ассемблера с языками высокого уровня
Assembler.
Ассемблер предназначен для написания программ, эффективных по времени и потреблению ресурсов. В ассемблере более 100 базовых символических команд (3800 машинных команд), более 20 директив.
Особенностью Ассемблера по сравнению с «машинными кодами» является:
символичное наименование операторов и операндов
отсутствие привязки к конкретным адресам памяти
использование макросредств
Формат оператора ассемблера:
метка: операция операнд(ы); комментарий (такая команда выполняется процессором на этапе выполнения программ
К операциям можно отнести директивы
имя директива операнд(ы); комментарий (директива ассемблера выполняется на этапе трансляции в объектный файл; команд не порождает)
Метка – задает адрес данной в исполняемом файле команды или директивы в исходном тексте.
Директива – действие над операндами при трансляции программы и генерации объектного файла
Операция – действие, выполняемое над операндами при выполнении программы.
Процесс обработки ассемблерной программы:
В символических кодах пишется программа, но данные выгодно писать в 16-ом коде.
Доступная ОЗУ делится на сегменты (64 КБ). Начало сегмента CODE закреплено в CS, а адрес в IP. DATA – начало в DS, адрес в OFFSET.
CS DS OFFSET
CODE
STACK
DATA
EXTRA
IP
SS
ES
SP
Организация выполняемых программ в ms – dos.
bat. – текстовый файл (с его помощью можно запускать) – для организации порядка и записи программ 2-х других типов (.com, .exe).
.com, .exe – программы, полученные в результате компиляции и компановки.
.com:
длина не превышает 64 КБ;
рассчитан для работы с малыми моделями памяти (TINY, SMALL);
хранится на диске в том виде, в котором исполняется и не требует дополнительной настройки после загрузки;
все сегментные регистры в начальный момент времени настроены на один и тот же адрес, с которого начинается PSP этой программы.
Структура .com – файла:
64 КБ PSP всегда занимает 256 байт = 100Н
Код
программы и
данные
- заполнение
100Н
CS:IP
PSP
DS,SS,ES,CS
Первично после загрузки все сегментные регистры настроены на PSP. Тогда 1-ая команда в программе начинается с адреса IP=100H; указатель STACK устанавливается на конец сегмента (STACK растет как сосулька).
.exe:
используется для моделей памяти SMALL и выше, позволяет применять любое количество сегментов;
требует настройку – содержит заголовок при хранении на диске, с помощью которого выполняется настройка при загрузке (настройка заключается в то, что все адреса предварительно корректируются);
Структура .exe – файла: SP
Данные Список PSP
Код
SS
PSP (после загрузки)
CS
DS, ES
PSP (Префикс сегмент program) – специальная структура, которая формирует ОС для каждого исполняемого файла. Она содержит с нулевого адреса команду INT20 (прерывание) длиной 1 слово, которая обеспечивает возврат ОС после выполнения программы.
H 1слово INT20 (CD20)
2H 1слово размер доступной памяти (в параграфах)
от 4H до (2C-1) 1слово вспомогательные адреса и команды
2CH среда окружения программ
80H область передачи данных (DTA)