Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Двоичный формат




Форматы исполняемых кодов

Тип исполняемого кода определяется компилятором (линковщиком). В программном обеспечении, связанном с отладкой и перепрограммированием МПК, используются два формата:

Двоичный (расширения - «.BIN», «.COM», «.PGM»);

Шестнадцатеричный (расширение - «.HEX»).

 

Как отмечалось выше, тело файла с расширениями «.C0M», «.BIN» или «.PGM» представляет собой двоичный образ программы, т.е. содержит набор кодов машинных инструкций, буквально соответствующих последовательности мнемонических команд ассемблера в исходном тексте. В силу этого при программировании МПК исполнительный модуль в виде файла с указанными расширениями может быть сразу «прошит» в ПЗУ.

В операционных средах DOS и Windows платформы Intel существует два типа исполняемых файлов: «.C0M» и «.EXE. Структура файлов с расширениями «.C0M» и «.EXE» представлено на рис.6а. Размер файла «.C0M» не превышает одного сегмента (64K), а размер файла «.EXE» не ограничен по числу сегментов.

Тело файла «.EXE» представляет собой образ задачи, которую построил линковщик, т.е. последовательное сочетание нескольких сегментов – кода, данных, стека, и имеет в начале файла заголовок, размером 512 байт. Заголовок состоит из стандартной части (форматированной зоны) и таблицы настройки адресов (таблицы размещения сегментов). Стандартная часть содержит признак файла «.EXE» - код ‘MZ’ и информацию, позволяющую вычислить размер программы и начальные значения кодового сегмента, сегмента стека и счетчика команд, необходимые для загрузки программы в ОЗУ.

 

 

Так, со смещением +2 в стандартной части содержится (2 байта) число байт part_page в последней странице файла (страница равна 512 байт). Со смещением +4 содержится (2 байта) размер программы file_size в страницах. Очевидно, что размер любой программы с расширением «.EXE» вычисляется в байтах как file_size*512+ part_page-512, где последнее вычитаемое есть размер заголовка.

После загрузки в ОЗУ под управлением операционной среды исполняемый модуль программы представляет собой последовательное расположение префикса программного сегмента PSP (Program Segment Prefix) размером 256 байт и загрузочного модуля (рис.6б). Префикс программного сегмента содержит служебную информацию для операционной системы. Для файла с расширением «.C0M» загрузочный модуль совпадает с двоичным образом программы, для файла с расширением «.EXE» он изменяется в соответствии с таблицей настройки адресов.

Так как префикс программного сегмента имеет размер 256 байт (100h), то для правильного старта файла с расширением «.C0M» в операционной среде указатель команд процессора должен быть настроен на стартовый адрес 100h. Это достигается использованием директивы управления адресом «.ORG». Пример начального фрагмента программы с расширением «.C0M» на ассемблере выглядит так:

CODE SEGMENT

ASSUME CS:CODE




Поделиться с друзьями:


Дата добавления: 2014-12-16; Просмотров: 749; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.