Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Вызов системных функций

Основы программирования DOS, WINDOWS.

EXE - программы(MS DOS).

При хранении на диске файл имеет формат:

 

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

Заголовок содержит размер ехе-файла, заголовок, табл.настр.перемещ.адресов.

При загрузке ехе-файла на вып-е, сначала строится PSP, а затем загружается прогр.

В рг ах заносится кол-во символов в командной строке.

bx:cx заносится размер загрузочного модуля.

ds, es заносится сегментный адрес PSP.

ss:sp заносится вершина стека.

cs:ip заносится точка входа в программу.

 

50.EXE – программы для WINDOWS 95/98/NT… (PE-формат).

PE-формат – переносимый формат.

MZ 40h xxxx
PE/0/0
Основной РЕ-заголовок (20 байт)
Дополнительный РЕ-заголовок
Таблица секций
Секция кода.txt
Секция инициализ.данных.data
Секция ресурсов.rsrc
Cекция экспортируемых функций.edata
Cекция импортируемых функций.idatа
Другие секции…

0h

18h

3ch

xxxh(50h, 45h, 0h)
Особенности РЕ-формата:

1. поддержка сплошной

2. расположение многих полей задается с помощью относительного смещения от начала РЕ-файла. Сам файл располагается по базовому адресу поля (БАП), адресу памяти с которого начинается загружаемый в память модуль.(БАП=400000h. Секция кода имеет ОАП=10000h(tlink), если link, то 1000h. Другие секции обычно следуют за секцией кода и вырав-ся прогр. Tlink на границу 64 кбайта. На link – 4 кбайта.)

 

Особенности:

1. используемая модель памяти.model flat. Сегментные рг программа пользователя не загружает.Адрес памяти опред-ся 32 – битным смещением (виртуальным адресом прил-я).

2. отсутствует возможность программирования УВВ на уровне портов. Управления ресурсами и взаимодействие с опер.системой используется системными функциями WinAPI (прогр.интерфейсного приложения).сами функциив системных.dll файлах (kornel 32.dll, user32.dll,sell32.dll…). import32.lib-содержится информация для трансляции.

3. интерфейс прикладного программирования общий (для WINDOWS CE/95/98/2003…)

4. поддержка многозадачности.

 

Функции АРI – это внешние процедуры, параметры которой передаются ч/з стек. Прикладная программа должна поместить все параметры, указанные в заголовке ф-ии от последнего к первому и передать управление командой САLL. Внешняя процедура сама освобождает параметры по команде RETN и возвращает результат работы в рг ЕХ.

push

Call <имя функции>

Такая договоренность о передаче параметров и возврате называется STDCALL. Этот атрибут можно явно указать при задании модели памяти.

Функции Win API сохраняют рг ESP, EBP, EBX, ESI, EDI.

Все имена функций Win API зависят от рг букв.

При обращении к функциям работающим с текстовыми строками нужно вконце имени ф-ии указать тип кодирования имени функции.

U(Unicode) текстовый символ занимает 2 байта.

Message BoxA.

Обычно подразумевается, что текстовая строка заканчивается 0, однако есть функции, в которых задается отдельным параметром.

При использовании в качестве среды разработки МАSM, в конце имени функций записывается кол-во байт передаваемое фун-ии в качестве параметров.

Message Box@16.

Большинство передаваемых параметров имеют тип dword.

Для примера составим описание функции Message Box – создание, отображение, выполнение различных действий с окном сообщений. Окно сообщ.содержит текст сообщения опред.пользов., заголовок сообщ.польз., а также сочетание пиптограмм и кнопок.

.model flat, stdcall

Call Message BoxA, парам.1, парам.2, парам.3, парам.4.

Параметры Тип Описание
парам.1 dword Дискриптор родительского окна. Если 0, то родит.окна не имеет.
парам.2 dword Смещение строки с 0 на конце содер-ий текст сообщений.
парам.3 dword Смещение строки с 0 на конце содержащий заголовок окна.
парам.4 dword Сочетание значений определяющее пиптограммы и кнопки на окне. Всего 29 различных значений.

Значение параметра 4:

1. 0-соответствует MB_OK

2. 1h – MB_OK CANSEL

3. 4h – MB_YES NO.

Результат функций возвращается в рг ЕАХ. Значит, 0 – недостат.памяти для создания окна, окно не создано. Всего 9 значений может быть возвращено.

 

 

<== предыдущая лекция | следующая лекция ==>
COM программы | Динамические библиотеки
Поделиться с друзьями:


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


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



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




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