MDK:在C语⾔和汇编语⾔中的相互调⽤⽂章⽬录
⼀.代码编写
1.参考代码
1.汇编语⾔
AREA  My_Function,CODE,READONLY
EXPORT Init_1;
Init_1
MOV R1,#0;
MOV R2,#0;
LOOP;
CMP R1,#10;
BHS LOOP_END;
ADD R2,#1;
ADD R1,#1;
B LOOP;
LOOP_END;
NOP
END;
2.C语⾔
#include<stdio.h>
extern void Init_1(void);
int main(){
Init_1();
return 0;
}
执⾏代码,进⼊调试
调试如图:
⼆.C 语⾔中调⽤汇编语⾔
1.修改代码
(1).c程序
#include<stdio.h>
extern int Init_1(int x);
extern  x=25;              //在别处定义全局变量x=25int main(){
Init_1(x);              //main 函数调⽤函数Init_1,参数为x=25 return 0;
}
(2).s程序
AREA My_Function,CODE,READONLY;  EXPORT Init_1;
Init_1
ADD R0,#100;
BX lr;            将寄存器R0的值返回到主函数 END;
2.调试代码
单步执⾏
继续执⾏
R0的寄存器的值由19变为7D
三.在汇编程序中调⽤C程序
1.修改代码
.c程序
#include <stdio.h>
extern int init_2(void);  //声明汇编函数
int init_1(int x)
{
return x+100;
}
int main()
c语言中文网汇编语言{
init_2();  //调⽤汇编函数
return 0;
}
.s程序
AREA My_Fuction,CODE,READONLY;
IMPORT init_1;引⼊外部函数,即C语⾔函数init_1 EXPORT  init_2
init_2
MOV R0, #25;寄存器R0的值加上25再存⼊R0中 BL init_1;调⽤main中的init_1函数
BX lr;返回主函数
END;
2.调试程序
单步执⾏
四.实验总结
该实验将汇编语⾔调⽤在C语⾔中,汇编语⾔体现了寄存器的使⽤,可以实现逐步改变变量值。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。