C语言程序调用汇编语言子程序
发表:2023-08-29 11:59:41 阅读:45

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);

/*将参数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

}

 

阅读更多请您关注:

混合编程的特点

C语言程序访问汇编语言常量、变量

在汇编语言程序中访问C语言定义的常量、变量

freescale代理