以下程序段是某個(gè)過(guò)程對(duì)應(yīng)的指令序列。入口參數(shù)inta和intb分別置于$a0和$a1中,返回參數(shù)是該過(guò)程的結(jié)果,置于$v0中。要求為以下MIPS指令序列加注釋,并簡(jiǎn)單說(shuō)明該過(guò)程的功能。
有些計(jì)算機(jī)提供了專門(mén)的指令,能從32位寄存器中抽取其中任意一個(gè)位串置于一個(gè)寄存器的低位有效位上,并高位補(bǔ)0,如下圖所示。MIPS指令系統(tǒng)中沒(méi)有這樣的指令,請(qǐng)寫(xiě)出最短的一個(gè)MIPS指令序列來(lái)實(shí)現(xiàn)這個(gè)功能,要求i=5,j=22,操作前后的寄存器分別為$s0和$s2。
可以先左移9位,然后右移15位,即: Sll $s2,$s0,9 Srl $s2,$s2,15