内联汇编概述 | 您所在的位置:网站首页 › 什么是内嵌汇编 › 内联汇编概述 |
内联汇编概述
项目
06/16/2023
Microsoft 专用 利用内联汇编程序,您可以直接在 C 和 C++ 源程序中嵌入汇编语言指令,而无需执行额外的汇编和链接步骤。 内联汇编程序生成到该编译器中,因此您不需要一个单独的汇编程序,例如 Microsoft Macro Assembler (MASM)。 由于内联汇编程序不需要单独的程序集和链接步骤,因此它比单独的汇编程序更方便。 内联汇编代码可以使用范围中的任何 C 或 C++ 变量或函数名称,因此,将其与程序的 C 和 C++ 代码结合非常容易。 由于汇编代码可以与 C 和 C++ 语句结合,因此它可以完成单独用 C 或 C++ 难以完成或无法完成的任务。 __asm 关键字将调用内联汇编程序并且可在 C 或 C++ 语句合法的任何位置出现。 它不能单独出现。 它必须后跟一个程序集指令、一组括在大括号中的指令或者至少一对空大括号。 此处的术语“__asm 块”指任何指令或指令组(无论是否在大括号中)。 以下代码是括在大括号中的简单 __asm 块。 (此代码是一个自定义函数 prolog 序列。) // asm_overview.cpp // processor: x86 void __declspec(naked) main() { // Naked functions must provide their own prolog... __asm { push ebp mov ebp, esp sub esp, __LOCAL_SIZE } // ... and epilog __asm { pop ebp ret } }或者,您还可以将 __asm 放在每个程序集指令前面: __asm push ebp __asm mov ebp, esp __asm sub esp, __LOCAL_SIZE虽然 __asm 关键字是语句分隔符,但您也可将程序集说明置于相同的行上: __asm push ebp __asm mov ebp, esp __asm sub esp, __LOCAL_SIZE结束 Microsoft 专用 另请参阅内联汇编程序 |
CopyRight 2018-2019 实验室设备网 版权所有 |