c语言asm函数 在C 中,asm关键字是做什么用的,能帮我举个例子吗?
在C 中,asm关键字是做什么用的,能帮我举个例子吗?Microsoft详细信息:ASM关键字启动内联程序集,可以写入任何C/C法律声明。它不能单独出现。它后面必须跟一条汇编指令、大括号中包含的一组
在C 中,asm关键字是做什么用的,能帮我举个例子吗?
Microsoft详细信息:
ASM关键字启动内联程序集,可以写入任何C/C法律声明。它不能单独出现。它后面必须跟一条汇编指令、大括号中包含的一组指令或一对空大括号“ASM block”这里是任何指令或指令组,无论是否在括号中。
下面的代码片段是一个简单的括号uuuasm块。
uuuu另一种方法是,您可以将它放在每个汇编指令的前面uuuasm
uuasm mov al,2
uuasm mov dx,0xD007
uuasm out al,dx
因为uuasm关键字是语句分隔符。您也可以将汇编指令放在同一行上:
asm mov al,2 asm mov dx,0xD007以上三个示例生成相同的代码,但是第一个样式(asm块(括在括号中)有一些优点。括号可以清楚地将C或C代码与汇编代码分开,并避免不必要的重复。括号也可以避免歧义。如果你想在这里把C或C语句放在ASM块的同一行,你必须用括号括起来。没有括号,编译器就不能告诉汇编代码在哪里停止,也不能告诉C或C代码从哪里开始。最后,由于方括号中的文本与原始MASM的格式相同,因此可以轻松地将现有MASM源文件中的文本剪切并粘贴到文件中。
与C和C不同的括号包含 ASM块的括号对变量的范围没有影响。你也可以嵌套,ASM块,嵌套对变量作用域没有影响。