MIPS體系結構剖析,32個通用寄存器

mips彙編有個約定(後來也有些變化,我們不管,o32,n32),32個通用寄存器不是一視同仁

  的,而是分成下列部分:

      寄存器號            符號名            用途

        0                 始終爲0     看起來象浪費,其實很有用

        1                 at          保留給彙編器使用

        2-3               v0,v1       函數返回值

        4-7               a0-a3       前頭幾個函數參數

        8-15              t0-t7       臨時寄存器,子過程可以不保存就使用

        24-25             t8,t9       同上

        16-23             s0-s7       寄存器變量,子過程要使用它必須先保存

                                      然後在退出前恢復以保留調用者需要的值

        26,27             k0,k1       保留給異常處理函數使用

        28                gp          global pointer;用於方便存取全局或者靜態變量

        29                sp          stack pointer

        30                s8/fp       第9個寄存器變量;子過程可以用它做frame pointer

        31                 ra         返回地址

   硬件上這些寄存器並沒有區別(除了0號),區分的目的是爲了不同的編譯器產生的代碼可以通用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章