c语⾔调⽤⼦程序实例,C语⾔程序调⽤汇编语⾔⼦程序
C语⾔程序调⽤汇编语⾔⼦程序:在C语⾔中调⽤汇编⼦程序,由于可能会涉及参数和返回值传递的问题,可参见前⾯章节“编译器后端”中介绍的函数调⽤中的参数传递规律。关于c语⾔程序调⽤汇编⼦程序的瘴⽤范例如下。
1)在汇编语⾔源⽂件中
XREF CData ;外部声明的变量
XDEF AddVar ;可以在外部模块使⽤的变量或⼦程序
XDEF ASMData ;可以在外部使⽤的变量
DataSec:SECTION
ASMData:DS.B l ;定义⼀个变量
CodeSec:SECTION
AddVar:
ADD CData ;将位于寄存器A中的参数值与C中定义的常量CData相加
STA ASMData ;运算结果位于A和ASMData中
RTS
2)为上述汇编程序建⽴头⽂件mixasm.h,建议为每个汇编程序建⽴⼀个头⽂件
#ifndef_MIXASM_H_ //防⽌头⽂件多次包含
#define_MIXASM_H_
void AddVar(unsigned char value);c语言中文网汇编语言
/*将参数value与全局常量CData相加,并将结果存储在ASMData中*/
extxm char ASMData; /*外部定义的变量*/
#endif
3)调⽤汇编⼦程序的C语⾔程序
static int Error---0;
const unsigned char CData=1 2;
#include"mixasm.h¨
void main(void){ .
AddVar(10);//调⽤汇编⼦程序
if(ASMData!=CData+lO){//这⾥ASMData有全局变量进⾏参数传递的作⽤
Error=1;
}else{
Error=0;
}
for(;;); //wait forever
}
阅读更多请您关注:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论