在Y86中,当您拥有6个以上的功能参数时会发生什么?

时间:2019-03-27 15:03:25

标签: assembly x86-64 calling-convention y86

在c中考虑此功能: long arithEx(long,long,long,long,long,long,long,long,long);

call symput('M_StartDate', put(intnx('month', &today ,-2-M_month,'beginning'), date9.));

在X-86中,汇编代码如下:

M_StartDate = put(intnx('month', &today ,-2-M_month,'beginning'), date9.);

这对我来说很有意义,因为X-86和Y-86只有6个寄存器来接收函数参数。对于X-86,由于它支持立即到内存寻址模式,因此我们可以将其余参数存储到内存中。

但是,对于Y-86,我们没有一条指令可以将立即数移动到内存中,那么其余参数应该放在哪里?

0 个答案:

没有答案