下列指令序列用來對兩個數(shù)組進行處理,并產(chǎn)生結果存放在$v0中。假定每個數(shù)組有2500個字,其數(shù)組下標為0到2499。兩個數(shù)組的基地址分別存放在$a0和$a1中,數(shù)組長度分別存放在$a2和$a3中。要求為以下MIPS指令序列加注釋,并簡單說明該過程的功能。假定該指令序列運行在一個時鐘頻率為2GHz的處理器上,add、addi和sll指令的CPI為1;lw和bne指令的CPI為2,則最壞情況下運行所需時間是多少秒?
以下程序段是某個過程對應的指令序列。入口參數(shù)inta和intb分別置于$a0和$a1中,返回參數(shù)是該過程的結果,置于$v0中。要求為以下MIPS指令序列加注釋,并簡單說明該過程的功能。
有些計算機提供了專門的指令,能從32位寄存器中抽取其中任意一個位串置于一個寄存器的低位有效位上,并高位補0,如下圖所示。MIPS指令系統(tǒng)中沒有這樣的指令,請寫出最短的一個MIPS指令序列來實現(xiàn)這個功能,要求i=5,j=22,操作前后的寄存器分別為$s0和$s2。
可以先左移9位,然后右移15位,即:
Sll $s2,$s0,9
Srl $s2,$s2,15