第一个:以下是用的 MSP430 型号单片机
4.1 C 语言函数和汇编语言函数相互调用
在这个示例中 C 语言函数 main()调用汇编语言函数 get_rand()以得到一个随机数;汇编语言函数
get_rand()首先调用 C 语言的标准库函数 rand()得到一个整型随机值,然后用调用 C 语言函数 mult()的方
法把这个随机值乘以 main()函数传递给自己的实参,并把乘积值返回给 main()函数。
4.1.1 C 语言源文件
/**************************************************************/
/* 文件名:c_source.c 2003-01-05 */
/* C 语言和汇编语言混合编程,C 源程序 */
/* 这段源程序调用汇编语言函数 get_rand() */
/* 注意工程必需包含汇编语言源文件 "asm_source.s43" */
/**************************************************************/
#include <MSP430x14x.h> /* 头文件 */
extern unsigned long get_rand(unsigned char seed); /* 汇编语言函数原型声明 */
/****************************************************************/
/* 主函数 */
/****************************************************************/
void main( void )
{
unsigned char seed; /* 局部变量定义*/
unsigned long value;
// === 系统初始化 ==========================================
IFG1 = 0; /* 清除中断标志 1 */
WDTCTL = WDTPW+WDTHOLD; /* 停止看门狗 */
P1DIR = 0xff;
// === 系统初始化结束========================================
seed = 0x55;
value = get_rand(seed); /* 调用汇编语言函数 get_rand()得到一个随机数 */
while(1); /*程序结束*/
}
// === 主程序结束 ==================================================
/******************************************************************/
/* 乘法子程序,供汇编语言函数调用 */
/******************************************************************/
unsigned long mult(int x , int y)
{
return (x *y); /*x 乘 y */
评论0
最新资源