運算方法和運算部件
阿新 • • 發佈:2020-10-08
一.高階語言和機器指令中的運算
1.C程式中涉及的運算
涉及的運算有按位運算
、邏輯運算
、移位運算
、位擴充套件和位截斷運算
- 移位運算
負數反碼,移位後符號位不變,左移時,最高位丟失0,則結果出錯;右移時,最低位丟失0,影響精度。
負數補碼,移位後符號位不變,左移時,最高位丟失0,則結果出錯;右移時,最低位丟失1,影響精度。 - 位擴充套件
進行位擴充套件時,擴充套件後的數值應保持不變。
擴充套件方式有:0擴充套件和符號擴充套件。0擴充套件用於無符號數,只要在短的無符號數前面新增足夠的0即可。符號擴充套件用於補碼錶示的帶符號整數,通過在短的帶符號整數前新增足夠多的符號位來擴充套件。
2.MIPS指令中涉及的運算
MIPS指令系統涉及的運算有按位邏輯運算、邏輯移位、算術移位、帶符號整數的加減乘除、無符號整數加減乘除、帶符號整數的符號擴充套件、無符號數的0擴充套件
、單精度浮點數加減乘除、雙精度浮點數加減乘除等。
2.基本運算部件
1,序列進位加法器
- 序列進方式:n位加法器,X與Y逐位相加,位間進位序列傳送。
- 只有一個全加器,資料逐位序列送入加法器中進行運算。進位觸發器用來寄存進位訊號,以便參與下一次運算。
- 行進位加法器速度慢的主要原因是進位按序列方式傳遞,高位進位依賴低位進位。
2,並行進位加法器
用n位全加器實現兩個n位運算元各位同時相加,這種加法器稱為並行加法器。並行加法器中全加器的個數與運算元的位數相同。並行加法器中全加器的位數與運算元的位數相同,可同時對運算元的各位相加。計算機內部大多采用兩級或多級先行進位加法器
3,帶標誌加法器
3.定點數運算
1,補碼加減法
- 運算表示式
- 判斷是否溢位
2,原碼加減運算
比較兩個運算元的符號,對加法實行“同號求和,異號求差”,對減法實行“異號求和,同號求差求和時,數值位相加,若最高位產生進位則結果溢位
求差時,被加數數值位加上加數數值位的補碼
3,移碼加減運算
移碼的和、差等於和、差的補碼。
4,原碼乘法運算
原碼一位乘法
(1)確定乘積的符號位。由兩個乘數的符號異或得到。
(2)計算乘積的數值位,乘積的數值部分分為兩個乘數的數值部分之積。
原碼二位乘法
原碼兩位乘是用兩位來決定新的部分積的形成,形成4種狀態