汇编语言子程序程序设计,汇编,子程序

在ARM汇编语言子程序中子程序调鼡是通过BL指令来完成的。BL指令的语法格式如下:

其中:subname是被调用的子程序的名称BL指令完成2个操作,即将子程序的返回地址放在LR寄存器中同时将PC寄存器值设置成目标子程序的第一条指令地址。

在返回调用子程序时转移链接指令保存到LR寄存器中的值需要拷贝回程序寄存器PC。对于最简单的子程序一条MOV指令就可完成子程序的返回,例如:

其实任何数据处理指令都可用来计算返回地址,但是MOV指令时至今最常見的形式碎玉在子程序中出现嵌套调用时,链接寄存器LR中的返回地址可能会在第二次调用时被覆盖所以需要将返回地址压入堆栈来进荇保存。在子程序返回时返回地址和保存的工作寄存器都可用多寄存器存取指令恢复。例如:

需要注意的是返回地址是直接恢复到程序计数器PC,而不是链接寄存器LR这种单元恢复和返回指令是非常有用的。

下面是一个子程序调用的简单例子子程序DOADD完成加法运算,操作數放在R0和R1寄存器中结果放在R0中。

凌阳教育专注嵌入式人才培养多年,完善的培养方案强大的师资,合理的课程安排成功从小白蜕變为嵌入式工程师。想了解凌阳教育或者获得更多嵌入式学习资料的免费下载,请点击访问凌阳教育官网

我要回帖

更多关于 汇编语言子程序 的文章

 

随机推荐