| 
 | 
 
 楼主 |
发表于 2011-10-10 21:34:54
|
显示全部楼层
 
 
 
回复 3# jm2000  
 
 
    你好: 
        我上面贴出来的是gcc mips 交叉编译工具链把c语言反汇编出来的汇编代码。 
454   4007f0:       8fbf0018        lw      ra,24(sp) 
 455   4007f4:       03200008        jr      t9 
 456   4007f8:       27bd0020        addiu   sp,sp,32 
 457   4007fc:       8fbf0018        lw      ra,24(sp) 
 458   400800:       00000000        nop 
 459   400804:       03e00008        jr      ra 
 460   400808:       27bd0020        addiu   sp,sp,32 
 461   40080c:       00000000        nop 
 462 
 463 00400810 <main>: 
 464   400810:       3c1c0005        lui     gp,0x5 
 465   400814:       279c8cd0        addiu   gp,gp,-29488 
 466   400818:       0399e021        addu    gp,gp,t9 
 467   40081c:       27bdff50        addiu   sp,sp,-176 
 468   400820:       afbf00a4        sw      ra,164(sp) 
 469   400824:       afbe00a0        sw      s8,160(sp) 
 470   400828:       e7b400a8        swc1    $f20,168(sp) 
 471   40082c:       e7b500ac        swc1    $f21,172(sp) 
 472   400830:       03a0f021        move    s8,sp 
 473   400834:       afbc0010        sw      gp,16(sp) 
 474   400838:       24020005        li      v0,5 
 
        我们现在用的gcc mips交叉编译工具是r3000的。现在的主要问题用这个编译器的时候,通用寄存器中的一部分寄存器是需要初始化的(gp,sp,t9)。我们没能找到初始化的数据是什么。 mips代码一般是从start开始的吗?? 
         我qq是286194066。能不能加下我qq。我想qq向你请教下关于编译器的问题。谢谢 |   
 
 
 
 |