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语言
#includeextern void Init_1(void); int main(){ Init_1(); return 0; }
执行代码,进入调试
调试如图:
1.修改代码
(1).c程序
#includeextern int Init_1(int x); extern x=25; //在别处定义全局变量x=25 int 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程序
#includeextern int init_2(void); //声明汇编函数 int init_1(int x) { return x+100; } int main() { 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语言中,汇编语言体现了寄存器的使用,可以实现逐步改变变量值。



