我最近看到了这些ASM指令,并试图弄清楚它们是干什么的。我看了几本ARM组装书(比如这),并弄明白了几条指令是干什么的。
例如,MRS (Move to Register from Status)将状态从PSR (Program Status Register)寄存器复制到%0 (我认为它是寄存器0)。
我无法理解: "=r" (Cs)和其他类似的指令所做的事情。
UINT32 Cp;
if((Cp & 0x1) == 0)
{
UINT32 Cs;
__asm
(
" MRS %0, PSR\n"
"BIC %1, %2, #0x80\n"
"cpsie i"
: "=r" (Cs), "=r" (Cp)
: "r" (Cs)
);
}谁能解释一下吗?
编辑1:这是在一个GlobalLock发布函数中。cpsie i启用中断。
https://stackoverflow.com/questions/29030091
复制相似问题