文档介绍:ARMARM汇编实验汇编实验
张宇
东南大学国家专用集成电路系统工程技术研究中心
版权说明
未经南京博芯电子技术有限公司的许可,
本说明文挡不可以被复制或以任何形式或
方式(电子的或是机械的)传播,包括影
印,记录或是用其他任何信息存储及检索
系统。
版本说明
时间版本号作者描述
2005-5 张宇创建
0. 目录
1. 实验目的
2. 实验原理
3. 实验内容
1. 实验目的
学会建立工程项目文件
掌握ARM汇编语言程序设计
学习C/汇编混合编程基本方法
熟悉调试环境
2. 实验原理
ARM汇编的程序设计
C/汇编的混合编程方式
ARM汇编的程序设计
ARM汇编语言以段(section)为单位组织源
文件;
段是相对独立,具有特定名称,不可分割
的指令或数据序列;
段分为代码段和数据段(至少要有代码
段)。
ARM汇编的程序设计
汇编中的子程序调用:
通过BL来实现的
将子程序的返回地址放在LR(r14)寄存器中;
将PC指向目标子程序的第一条指令地址;
如果需要参数传递,则用r0~r3来传递,当参数超
过四个,则超过的参数用堆栈来传递;
子程序返回时:mov pc,lr
用r0来保存返回值。
ARM汇编的程序设计
Include
AREA TEST, CODE, READONLY
EXPORT asm_proc
IMPORT value
ENTRY
asm_proc ldr r0, =value
LDR r0, [r0]
MOV r1, #8
BL DOadd
Exit SWI 0x123456
DOadd add r0, r0, r1
mov pc, lr
END
C/汇编的混合编程方式
汇编中调用c函数
使用BL来实现(eg: BL multi)
使用r0~r3和堆栈来传递参数