stm32汇编与c语言编程

根据一定了解keil建立工程里面创建文件

创建c语言程序加入工程里`

//main.c
# include<stdio.h>

extern void	Init_1(void);

int main()
{
	
	Init_1();
	
	return 0;
}

//func.s
	AREA	MY_FUNCTION,CODE,READONLY
	EXPORT 	Init_1  ;//??c??????Init_1??????


; //?????????????????????????,????????????????

Init_1

	MOV R1,#0     ; //?R1????i
	MOV R2,#0	  ; //?R2????j
	
LOOP	;// ?????????????,?????????
	CMP R1,#10	  ; //??R1?10???
	BHS LOOP_END  	  ;// ??R1????10,????LOOP_END???,???????,?????????
	ADD R2,#1	  ; //j++
	ADD R1,#1     ; //i++
	B LOOP		  ; //??
	
LOOP_END
	NOP	
	
	END  ; //???????END,?????????,??????

将两个文件加入到工程里面
在这里插入图片描述
在main.c和func.s里面设置相关断点
在这里插入图片描述
在这里插入图片描述

断点设置完成进行单步运行

在这里插入图片描述
不断的单步运行会发现寄存器R1,R2会不断的加一到10
在这里插入图片描述

改变函数可完成

//func.s
AREA  My_Function,CODE,READONLY;
	EXPORT Init_1;
;
		
Init_1
    ADD R0,#100;//将R0与100相加	
	END;
//main.c
#include<stdio.h>

extern int Init_1(int x);

int main()
	{
	
	Init_1(10);

	return 0;
}

即传递整形函数10 ,之后R0与100相加放入R0中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值