2007年10月24日 星期三

1024 C語言除法轉換組合語言注意事項

撰寫C語言必須注意除法的除數與被除數的宣告
Ex:
撰寫C語言除法,使用整數/浮點數,浮點數/整數,整數/整數
#includemain(){
int d=4,c=198;
float avg[4],ava[4],a=3.0;
avg[1]=c/3;
avg[2]=c/3.3;
ava[0]=198/a;
}
轉換後各個除法所轉換的組合語言
avg[1]=c/3; //編譯成div $30, $24
==>執行後結果正確

avg[2]=c/3.3; // c=198 編譯成 div.d $f18, $f18, $f16
==>執行後結果錯誤

ava[0]=198/a; // a=3.0 編譯成 div.s $f18, $f18, $f16
==>執行後結果正確

建議:將除法的被除數與除數皆設為浮點數形式。

沒有留言: