问答题
设变量h放在寄存器$S2中,数组A的基值放在寄存器$S3中,请将下面C语句翻译成MIPS R4000汇编语言代码。C赋值语句是:A[12]=h+A[8]
【正确答案】正确答案:虽然C语句只有一个操作,但是两个操作数均在存储器中,因此必须使用取字(iw)指令和存字(sw)指令。MIPSR4000计算机按字节访问存储器,字地址是32位(字节值的4倍)。因此MIPS R4000汇编语言表示如下: iw $t0,32($S3) #基值寄存器$S3的偏移量为32=4×8,访存地址为A[8] add $t0,$32,$t0 #加法操作将结果放到临时寄存器$t0 sw $t0,48($S3) #加法结果放到存储器地址A[12]中,偏移量为48=4×12
【答案解析】