Вбудований асемблер (C), Microsoft Docs
В цій статті
Блок, що стосується лише систем MicrosoftMicrosoft Specific
Вбудований асемблер дозволяє впроваджувати інструкції мови асемблера безпосередньо у вихідні програми без додаткових кроків зі складання та компонування. The inline assembler lets you embed assembly-language instructions directly in your C source programs without extra assembly and link steps. Вбудований код на асемблері вбудований в компілятор, тому вам не потрібен окремий збирач мови асемблера, такий як Microsoft Macro Assembler (MASM). The inline assembler is built into the compiler — Ви не повинні використовувати окремий assembler such as Microsoft Macro Assembler (MASM).
Так як вбудований асемблер не вимагає окремих дій зі складання та компонування, він є більш зручним, ніж окремий асемблер. Тому, що в inline assembler немає потреби в окремій assembly and link steps, it is more convenient than a separate assembler. У вбудованому коді на мові асемблера можна використовувати будь-яке ім'я змінної або функції мови C, що знаходиться в області видимості, тому легко інтегрувати з кодом C програми. Inline assembly code може бути використаний будь-який C variable або функція name, що є в рядку, так що це легко включити його з вашим програмою C code. Оскільки в коді на мові асемблера можна одночасно використовувати оператори C, за його допомогою можна виконувати завдання, які надто складно або неможливо виконати тільки в C. And because in C alone.
Ключове слово __asm викликає вбудований асемблер і може використовуватися в будь-якому місці, де може використовуватися оператор С. The__asm keyword invokes inline assembler і може appear wherever a C statement is legal. Він не може відображатись самостійно. Це неможна побачити його. За ним повинна слідувати інструкція зі збирання, група інструкцій, укладена в круглі дужки або, у крайньому випадку, порожня пара круглих дужок. Він повинен бути спричинений assembly instruction, групою інструкцій, які входять у брюки, або на дуже тяжкі, empty pair of braces. Термін "блок __asm" у цьому розділі стосується будь-якої інструкції або групи інструкцій, у дужках або без них. Термін " __asm block " тут refers to any instruction або group of instructions, wherethere or not in braces.
Наступний код – це простий блок __asm, укладений у фігурні дужки. Code below is a simple __asm block enclosed in braces. (Цей код є послідовністю прологу функції користувача.) (The code is a custom function prolog sequence.)
Крім того, можна поставити __asm перед кожною інструкцією зі збирання. Крім того, ви можете почати __asm в front of each assembly instruction:
Оскільки ключове слово __asm є роздільником операторів, можна поміщати інструкції асемблера на одному рядку. Since __asm keyword is a statement separator, you can also put assembly instructions on the same line:
Завершення блоку, який стосується лише систем МайкрософтEND Microsoft Specific