MIPS有编码约定吗



我想与C编译器链接。

  • 使用MIPS将值传递给函数的约定是什么
  • 是否有编码约定或类似RFC的文档

没有正确的方法,使用汇编语言可以随心所欲。

但是,例如,如果你试图与C编译器链接,为什么不尝试使用现有的编译器呢?它显然可以创建与同一编译器生成的其他对象链接的对象。

extern unsigned int more_fun ( unsigned int a, unsigned int b );
unsigned int fun ( unsigned int a, unsigned int b )
{
    unsigned int c;
    c = more_fun(a,b+7);
    return(c+a+5);
}

这是我产生的(带有某些标志),对象没有链接。。。

00000000 <fun>:
   0:   27bdffe8    addiu   sp,sp,-24
   4:   24a50007    addiu   a1,a1,7
   8:   afbf0014    sw  ra,20(sp)
   c:   afb00010    sw  s0,16(sp)
  10:   0c000000    jal 0 <fun>
  14:   00808025    move    s0,a0
  18:   8fbf0014    lw  ra,20(sp)
  1c:   26100005    addiu   s0,s0,5
  20:   02021021    addu    v0,s0,v0
  24:   8fb00010    lw  s0,16(sp)
  28:   03e00008    jr  ra
  2c:   27bd0018    addiu   sp,sp,24

我认为这说明了这一点,并为您提供了一种方法来计算更复杂的参数或返回值。我更喜欢编译和反汇编,而不是编译到汇编。更容易阅读和实际查看所产生的内容。YMMV。

最新更新