ARM Linux引导手册说寄存器r0应该为零。为什么寄存器r0应该是zer0?ARM Linux:为什么Linux希望将寄存器r0设置为零
http://www.arm.linux.org.uk/developer/booting.php
CPU register settings
r0 = 0.
r1 = machine type number discovered in (3) above.
r2 = physical address of tagged list in system RAM.
我穿过拱门/ ARM /内核浏览/ head.S中也没有找到其中的原因。
ARM没有一个有效的异或操作? – bdonlan
不过,我不清楚。你能否详细解释一下。 A)如果寄存器未设置为零,会产生什么不同。 b)有15个寄存器,但为什么只有r0? – user997487
好吧,如果代码假设r0为零且不是,那么程序的行为将是未定义的。我没有写ABI规范。我认为它没有任何架构上的必要性 - 但一旦建立起来,就会陷入惯例。 –