嗯,我又想了想,的确(倒不如说看到用了-m32的汇编码就很怀疑自己之前的判断了
然而从开gdb看到的汇编指令中能看到,即使开了-m32运行时仍然用的是x86_64的传参方式(objdump -d ./runso得到的汇编代码也是这样)。
我还发现一点,运行结果正常的RunsoSimple和runso相比,多了esi、edi、edx等寄存器入栈/出栈的过程(这是x86_64的约定,显然不符合预期),我在想runso没传参数会不会和没传源变址偏移量有关系。虽然i386机器运行时不会这么做,但是在运行过程中却发生了符合x86_64标准的调用。
