以下是一個C語言程序,用來計算一個數(shù)組a中每個元素的和。當(dāng)參數(shù)len為0時,返回值應(yīng)該是0,但是在機(jī)器上執(zhí)行時,卻發(fā)生了存儲器訪問異常。請問這是什么原因造成的,并說明程序應(yīng)該如何修改。
假定一臺32位字長的機(jī)器中帶符號整數(shù)用補(bǔ)碼表示,浮點數(shù)用IEEE 754標(biāo)準(zhǔn)表示,寄存器R1和R2的內(nèi)容分別為R1:0000108BH,R2:8080108BH。不同指令對寄存器進(jìn)行不同的操作,因而,不同指令執(zhí)行時寄存器內(nèi)容對應(yīng)的真值不同。假定執(zhí)行下列運算指令時,操作數(shù)為寄存器R1和R2的內(nèi)容,則R1和R2中操作數(shù)的真值分別為多少? (1)無符號數(shù)加法指令 (2)帶符號整數(shù)乘法指令 (3)單精度浮點數(shù)減法指令