Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ассемблеру / Лекции по ассемблеру.doc
Скачиваний:
81
Добавлен:
01.05.2014
Размер:
245.25 Кб
Скачать

Assembler.

Ассемблер предназначен для написания программ, эффективных по времени и потреблению ресурсов. В ассемблере более 100 базовых символических команд (3800 машинных команд), более 20 директив.

Особенностью Ассемблера по сравнению с «машинными кодами» является:

  1. символичное наименование операторов и операндов

  2. отсутствие привязки к конкретным адресам памяти

  3. использование макросредств

Формат оператора ассемблера:

  1. метка: операция операнд(ы); комментарий (такая команда выполняется процессором на этапе выполнения программ

К операциям можно отнести директивы

  1. имя директива операнд(ы); комментарий (директива ассемблера выполняется на этапе трансляции в объектный файл; команд не порождает)

Метка – задает адрес данной в исполняемом файле команды или директивы в исходном тексте.

Директива – действие над операндами при трансляции программы и генерации объектного файла

Операция – действие, выполняемое над операндами при выполнении программы.

Процесс обработки ассемблерной программы:

В символических кодах пишется программа, но данные выгодно писать в 16-ом коде.

Доступная ОЗУ делится на сегменты (64 КБ). Начало сегмента CODE закреплено в CS, а адрес в IP. DATA – начало в DS, адрес в OFFSET.

CS DS OFFSET

CODE

STACK

DATA

EXTRA

IP

SS

ES

SP

Организация выполняемых программ в ms – dos.

  1. bat. – текстовый файл (с его помощью можно запускать) – для организации порядка и записи программ 2-х других типов (.com, .exe).

  2. .com, .exe – программы, полученные в результате компиляции и компановки.

.com:

  1. длина не превышает 64 КБ;

  2. рассчитан для работы с малыми моделями памяти (TINY, SMALL);

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

  4. все сегментные регистры в начальный момент времени настроены на один и тот же адрес, с которого начинается PSP этой программы.

Структура .com – файла:

64 КБ PSP всегда занимает 256 байт = 100Н

Код программы

и данные

SP

- заполнение

100Н

CS:IP

PSP

DS,SS,ES,CS

Первично после загрузки все сегментные регистры настроены на PSP. Тогда 1-ая команда в программе начинается с адреса IP=100H; указатель STACK устанавливается на конец сегмента (STACK растет как сосулька).

.exe:

  1. используется для моделей памяти SMALL и выше, позволяет применять любое количество сегментов;

  2. требует настройку – содержит заголовок при хранении на диске, с помощью которого выполняется настройка при загрузке (настройка заключается в то, что все адреса предварительно корректируются);

Структура .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)

Соседние файлы в папке Лекции по ассемблеру