ARM汇编语言程序结构与子程序调用

需积分: 15 35 下载量 90 浏览量 更新于2024-08-08 收藏 2.02MB PDF 举报
本文主要介绍了ARM汇编语言的程序结构以及子程序调用的方法,以一个简单的示例程序为背景,深入浅出地讲解了汇编语言的基本元素和调用机制。 在ARM汇编语言中,程序以段为单位进行组织,主要包括代码段和数据段。代码段存储执行的指令,而数据段则用于存放运行时需要的数据。一个汇编程序至少包含一个代码段,大型程序可能会有多个代码段和数据段。在编译和链接过程中,这些段会合并成一个可执行的映象文件,其中可能包括只读代码段、可读写的数据段(包含初始化数据)和可读写的数据段(不包含初始化数据)。链接器会根据规则将这些段安排到内存的适当位置。 汇编语言源程序的基本结构包括使用AREA伪指令定义段,如示例中的AREA Init,CODE,READONLY,用于创建一个只读代码段Init。ENTRY伪指令标记程序的入口点,接着是指令序列,最后用END伪指令表示代码段的结束。在示例程序中,可以看到如何使用LDR和STR指令进行数据加载和存储。 在ARM汇编中,子程序调用通常通过BL指令完成。BL指令在调用子程序时,会将返回地址保存在连接寄存器LR中,并将程序计数器PC指向子程序的起始地址。子程序执行完毕后,通过将LR中的地址复制回PC,就可以返回调用点。BL指令还可以传递参数和返回结果,通常使用R0到R3寄存器进行。 此外,本文还提及了ARM微处理器系列,包括ARM7、ARM9、ARM9E、ARM10E、SecurCore、StrongARM和Xscale等,以及ARM处理器的结构、编程模型和指令系统。编程模型涉及处理器的工作状态、存储器格式、指令长度、处理器模式、寄存器组织和异常处理等。 理解ARM汇编语言的程序结构和子程序调用对于进行ARM应用系统开发至关重要,特别是在基于S3C4510B这样的嵌入式系统设计中。通过学习和掌握这些基础知识,开发者可以编写和调试更高效、更优化的ARM汇编代码。