ARM处理器与TI C55x DSP的编程技术解析
1. ARM处理器编程基础
1.1 地址加载与变量访问
在ARM编程中,使用ADR伪操作将地址加载到寄存器以访问变量,这样能使代码简单易读。不过,编译器通常会采用其他技术来生成地址,因为它们需要处理全局变量和自动变量。
1.2 控制流操作
1.2.1 分支指令
B(分支)指令是ARM中改变控制流的基本机制。分支目标地址通常被称为分支目标,分支是相对于程序计数器(PC)的,即分支指令指定从当前PC值到分支目标的偏移量。偏移量以字为单位,由于ARM是按字节寻址的,所以偏移量要乘以4(实际上是左移两位)以形成字节地址。例如, B #100 会将当前PC值加上400。
1.2.2 条件分支
ARM允许任何指令(包括分支指令)有条件地执行。条件代码用于控制指令的执行条件,常见的条件代码如下表所示:
| 条件代码 | 含义 | 标志位条件 |
| ---- | ---- | ---- |
| EQ | 等于零 | Z = 1 |
| NE | 不等于零 | Z = 0 |
| CS | 进位标志置位 | C = 1 |
| CC | 进位标志清零 | C = 0 |
| MI | 负数 | N = 1 |
| PL | 非负数(正数) | N = 0 |
| VS | 溢出 | V = 1 |
| VC | 无溢出 | V = 0 |
| HI | 无符号数较高 | C = 1 且 Z = 0 |
超级会员免费看
订阅专栏 解锁全文
21

被折叠的 条评论
为什么被折叠?



