#pragma asm
nop
#pragma endasm
的意思是这段程序向SRC文件编译时保持源代码不变 也就把这段汇编加进SRC汇编文件中。
但C文件要生成HEX文件时是通过OBJ文件进行的,所以直接编译是肯定出错的
正确的方法是生成SRC文件后 打开直接对SRC文件编译来生成HEX文件
1、在C文件中要嵌入汇编代码片以如下方式加入汇编代码:#pragmaASMAssemblerCodeHere#pragmaENDASM2、在Project窗口中包含汇编代码的C文件上右键,选择“Optionsfor...”,点击右边的“GenerateAssemblerSRCFile”和“AssembleSRCFile”,使检查框由灰色变成黑色(有效)状态;3、根据选择的编译模式,把相应的库文件(如Small模式时,是Keil\C51\Lib\C51S.Lib)加入工程中,该文件必须作为工程的最后文件;4、编译,即可生成目标代码。int main(void) // C语言嵌入汇编,还是要有main 函数的,而且汇编语句要放入函数里面{
__asm mov al, 2
__asm mov dx, 0xD007
__asm out dx, al
}