据我所知,在函数中使用's'寄存器时,它们不应该被修改,应该堆叠存储。 将s寄存器的值移动到临时寄存器并使用它并将其返回是不对的?如果是这样,为什么?
答案 0 :(得分:0)
没错。但是,存在一些限制,有时您必须将寄存器的内容存储在内存中。
如果您的函数没有调用任何其他函数,那么您可以将s
寄存器保存在临时寄存器中,前提是您的例程不需要使用这些临时寄存器。如果您需要使用这些临时寄存器,那么您最终将使用内存来备份原始内容。
另一方面,如果您的例程调用另一个例程,则不能假定将保留临时寄存器(约定规定要保留s
个寄存器)。因此,如果你调用另一个例程,你可能需要在内存中保存s
个寄存器(例如在堆栈中)。