了解此零件臂装配代码

wzf*_*943 3 assembly arm gnu-assembler cortex-m

.syntax unified
.thumb

.cpu cortex-m4
.arch armv7e-m
.fpu fpv4-sp-d16

/* Changes from unprivileged to privileged mode. */
.thumb_func
.section    .kernel
.global     raise_privilege
.type       raise_privilege, %function
raise_privilege:
mrs     r0, control
bic     r0, r0, #1
msr     control, r0
dsb
isb
bx      lr
Run Code Online (Sandbox Code Playgroud)

这是手臂组装代码的一部分.我可以查看芯片手册来弄清楚说明的含义.但我不知道如何弄清楚汇编程序指令的行为.thumb_func.更重要的是,我也不知道如何使用这部分代码,它看起来不像常规功能.所以我不知道如何"召唤"它.

sco*_*ttt 5

  • 以a开头的指令.实际上是汇编程序指令.您可以在GAS:ARM机器指令中查找它们
  • .syntax unified表示使用统一的ARM/Thumb汇编语法.这里这里解释这个概念.
  • .thumb_func表示ARM-Thumb互通的Thumb模式功能的开始.这里这里解释这个概念.
  • raise_privilege看起来就像C中的void raise_privilege(void) 叶子函数(即它不会调用其他函数).称之为:
bl raise_privilege