我正在为 Raspberry Pi 编写一些裸机代码,并且收到来自 Windows 上的 ARM 交叉汇编程序的意外警告。导致警告的说明是:
stmdb sp!,{r0-r14}^
和
ldmia sp!,{r0-r14}^
警告是:
警告:基址寄存器的写回是不可预测的
我可以这样理解,虽然'^'修饰符告诉处理器存储寄存器的用户模式副本,但它不知道执行指令时处理器将处于什么模式并且似乎没有是一种方式来告诉它。我更担心会收到相同的警告:
stmdb sp!,{r0-r9,sl,fp,ip,lr}^
和:
ldmia sp!,{r0-r9,sl,fp,ip,lr}^
尽管我明确没有存储任何sp 寄存器。
我担心的是,尽管大约 15 年前我曾经做过很多汇编代码,但 ARM 代码对我来说是新的,我可能会误解一些东西!另外,如果我可以安全地忽略这些警告,有没有办法抑制它们?