Использование символов 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 не распознаются маркеры структуры и объединения.

Завершение блока, относящегося только к системам Майкрософт

См. также

Использование C или C++ в блоках __asm