Использование символов C или C++ в блоках __asm
Блок, относящийся только к системам Майкрософт
Блок __asm
может обозначать любой символ C или C++ в той области видимости, в которой находится этот блок. (Символы C и C++ — это имена переменных, имена функций и метки; то есть имена, которые не являются символьными константами или enum
элементами. Нельзя вызывать функции-члены C++.)
На использование символов C и C++ накладывается несколько ограничений.
Каждый оператор языка ассемблера может содержать только один символ C или C++. Несколько символов могут отображаться в одной инструкции сборки только с выражениями LENGTH, TYPE и SIZE .
Объявления (прототипы) функций, ссылки на которые находятся в блоке
__asm
, должны быть созданы в более ранней точке программы. В противном случае компилятор не может различать имена функций и метки, находящиеся в блоке__asm
.Блок
__asm
не может использовать символы C или C++, совпадающие по написанию с зарезервированными словами MASM (вне зависимости от регистра). Зарезервированные слова MASM включают имена инструкций, такие как PUSH и регистры, такие как SI.В блоках
__asm
не распознаются маркеры структуры и объединения.
Завершение блока, относящегося только к системам Майкрософт