Согласование параметров
Согласование параметров.
В таблице ниже представлены основные соглашения по передаче параметров в процедуру. Заметим в этой связи, что во всех наших ассемблерных программах мы указывали тип передачи параметров как stdcall. Однако, по сути, это никак и нигде не использовалось - так передача и извлечение параметров делалась нами явно, без помощи транслятора. Когда мы имеем дело с языками высокого уровня, это необходимо учитывать и знать, как работают те или иные соглашения.
Таблица, представляющая соглашения о вызовах
Pascal (конвенция языка Паскаль) | Слева направо | Процедура | Нет |
Register (быстрый или регистровый вызов) | Слева направо | Процедура | Задействованы три регистра (EAX,EDX,ECX), далее стек |
Cdecl (конвенция С) | Справа налево | Вызывающая программа | Нет |
Stdcall (стандартный вызов) | Справа налево | Процедура | Нет |