Win32ASM Минимальное приложение

  d8ef8794     

model flat, stdcall. Первый параметр


. model flat, stdcall. Первый параметр - это модель памяти. Например, COM'овские программки, которые мы с вами раньше писали, соответствовали модели tiny, то есть "крошечной" - они запросто помещались в 64 Кб памяти, и никаких проблем с адресацией данных у нас не было. Однако если бы мы захотели написать под ДОС программу во много раз большую, чем 64 Кб, т.е. превышающую размер сегмента, нам пришлось бы познакомиться с таким динозавром как офсетно-сегментная адресация, и использовать, в зависимости от навороченности программы, модели small, medium, compact или large. Под Windows же у нас есть одна-единственная "правильная" модель памяти - flat, то бишь "плоская", позволяющая нашей программе благодаря страничной адресации легко и просто работать с 4 Гб виртуальной несегментированной памяти. И это есть хорошо! Ибо теперь, как сказал некто Вал.Ик., нам не нужно смотреть на мир сквозь замочную скважину 64 Кб-сегмента. (C)
  Второй же параметр указывает на так называемое соглашение о вызове процедур. Каждый язык имеет свои "соглашения". Так, второй параметр может принимать значения c, basic, fortran, pascal... Мы не будем вдаваться в особенности каждого, просто скажем, что при программировании под win32 на макроассемблере нужно использовать соглашение stdcall, ведущее свою родословную в части наименования ] функций - от языка С (плодовитый, однако, мужчина!), а в части передачи аргументов - от языка Pascal (курица, как говорится, не птица, но яйца мы предпочитаем куриные). Подробнее об этом соглашении будет рассказано ниже.

 

Содержание раздела