【Cortex

编程入门 行业动态 更新时间:2024-10-09 10:23:21

【<a href=https://www.elefans.com/category/jswz/34/1767922.html style=Cortex"/>

【Cortex

【Cortex-A7】 常用汇编指令

  • Cortex-A7 常用汇编指令
    • 1. 处理器内部数据传输
    • 2. 存储器访问指令
    • 3. 压栈和出栈指令
    • 4. 跳转指令
    • 5. 算术运算指令
    • 6. 逻辑运算指令

Cortex-A7 常用汇编指令

参考《ARM ArchitectureReference Manual ARMv7-A and ARMv7-R edition.pdf》的 A4
章节。

先运行汇编语言,从汇编语言跳转到C语言,解释:

cortex-A 芯片刚上电时, SP 指针还未初始化,C环境还未准备好。应该先用汇编语言设置好C环境,比如初始化 DDR ,设置 SP指针等。

  • 堆栈:因为C语言的函数运行设计到出栈入栈等对堆栈的操作,堆栈由SP指针访问,上电SP指针还没有设置好的前提下,C代码是无法运行的
  • 初始化DDR:还有些芯片本身没有RAM,或者内部的RAM不开放给用户使用,用户的代码需要在 DDR 中运行,因此汇编中还需要初始化 DDR

ARM 汇编 , GCC交叉编译器 ,代码要符合 GUN 语法。

1. 处理器内部数据传输

指令目的描述
MOVR0R1将 R1 里面的数据复制到 R0 中。
MRSR0CPSR将特殊寄存器 CPSR 里面的数据复制到 R0 中。
MSRCPSRR1将 R1 里面的数据复制到特殊寄存器 CPSR 里中

2. 存储器访问指令

读写存储器时,需要先将存储器的地址放在寄存器中,再去操作寄存器

指令描述
LDR Rd, [Rn , #offset]从存储器 Rn+offset 的位置读取数据存放到 Rd 中。
STR Rd, [Rn, #offset]将 Rd 中的数据写入到存储器中的 Rn+offset 位置。

3. 压栈和出栈指令

指令描述
PUSH 将寄存器列表存入栈中。
POP 从栈中恢复寄存器列表

4. 跳转指令

指令描述
B 跳转到 label,如果跳转范围超过了+/-2KB,可以指定 B.W
BX 间接跳转,跳转到存放于 Rm 中的地址处,并且切换指令集
BL 跳转到标号地址,并将返回地址保存在 LR 中。
BLX 结合 BX 和 BL 的特点,跳转到 Rm 指定的地址,并将返回地 址保存在 LR 中,切换指令集。


5. 算术运算指令

指令计算公式备注
ADD Rd, Rn, RmRd = Rn + Rm加法运算,指令为 ADD
ADD Rd, Rn, #immedRd = Rn + #immed
ADC Rd, Rn, RmRd = Rn + Rm + 进位带进位的加法运算,指令为 ADC
ADC Rd, Rn, #immedRd = Rn + #immed +进位
SUB Rd, Rn, RmRd = Rn – Rm减法
SUB Rd, #immedRd = Rd - #immed
SUB Rd, Rn, #immedRd = Rn - #immed
SBC Rd, Rn, #immedRd = Rn - #immed – 借位带借位的减法
SBC Rd, Rn ,RmRd = Rn – Rm – 借位
MUL Rd, Rn, RmRd = Rn * Rm乘法(32 位)
UDIV Rd, Rn, RmRd = Rn / Rm无符号除法
SDIV Rd, Rn, RmRd = Rn / Rm有符号除法

6. 逻辑运算指令

指令计算公式备注
AND Rd, RnRd = Rd &Rn按位与
AND Rd, Rn, #immedRd = Rn &#immed
AND Rd, Rn, RmRd = Rn & Rm
ORR Rd, RnRd = Rd | Rn按位或
ORR Rd, Rn, #immedRd = Rn | #immed
ORR Rd, Rn, RmRd = Rn | Rm
BIC Rd, RnRd = Rd & (~Rn)位清除
BIC Rd, Rn, #immedRd = Rn & (~#immed)
BIC Rd, Rn , RmRd = Rn & (~Rm)
ORN Rd, Rn, #immedRd = Rn | (#immed)按位或非
ORN Rd, Rn, RmRd = Rn | (Rm)
EOR Rd, RnRd = Rd ^ Rn按位异或
EOR Rd, Rn, #immedRd = Rn ^ #immed
EOR Rd, Rn, RmRd = Rn ^ Rm

更多推荐

【Cortex

本文发布于:2023-11-17 09:11:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1642078.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Cortex

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!