-2

编译器是否总是按顺序使用 R0?

4

2 回答 2

1

您的问题可能需要更多上下文才能清楚您所指的内容,但ARM 过程调用标准定义了符合标准的编译器如何具体使用特定寄存器第 5.1.1 节。

R0 用于保存函数调用的第一个参数,并返回结果值。它也可以任意用作临时寄存器来保存函数调用的临时或中间值。

在此处输入图像描述

于 2019-01-31T12:54:36.033 回答
1
float fun ( float a )
{
    return(a+1.0F);
}
00000000 <fun>:
   0:   eddf7a01    vldr    s15, [pc, #4]   ; c <fun+0xc>
   4:   ee300a27    vadd.f32    s0, s0, s15
   8:   e12fff1e    bx  lr

没有 r0 并不总是在其他任何事情之前使用。

于 2019-01-31T18:34:24.540 回答