機組第三章預習
阿新 • • 發佈:2020-10-07
一.高階語言和機器指令中的運算
1,按位運算:符號|按位OR運算;符號&按位AND運算;符號~表示按位NOT運算;符號^按位XOR運算。 實現掩碼操作:通過與給定的一個位模式進行按位與,可以提取所需要的位,對這些位進行“置1” “清0”等。 2,符號||按位OR運算;符號&&表示AND運算;符號!表示NOT運算。 3,移位運算輯移位和算術移位。 邏輯移位:不考慮符號位,把高(低)位移出,低(高)補0. 原碼的移位:原碼算術移位:左移丟1,運算會出錯,右移丟1,會影響精度 補碼的移位:正數中,原碼,補碼,反碼左右移都補0,負數中,原碼左右移補0,補碼左移補0、右移補1,反碼左右移補1。 4,位擴充套件和位截斷運算 兩種位擴充套件方式:0擴充套件和符號擴充套件。0擴充套件用於無符號數,符號擴充套件用於補碼錶示的帶符號整數
二.基本運算部件
1,序列進位加法器
- 序列進方式:n位加法器,X與Y逐位相加,位間進位序列傳送。
- 只有一個全加器,資料逐位序列送入加法器中進行運算。進位觸發器用來寄存進位訊號,以便參與下一次運算。
- 行進位加法器速度慢的主要原因是進位按序列方式傳遞,高位進位依賴低位進位。
2,並行進位加法器
用n位全加器實現兩個n位運算元各位同時相加,這種加法器稱為並行加法器。並行加法器中全加器的個數與運算元的位數相同。
並行加法器中全加器的位數與運算元的位數相同,可同時對運算元的各位相加。
計算機內部大多采用兩級或多級先行進位加法器。
3,帶標誌加法器
三.定點數運算
1,補碼加減法
- 運算表示式
- 判斷是否溢位
2,原碼加減運算
比較兩個運算元的符號,對加法實行“同號求和,異號求差”,對減法實行“異號求和,同號求差
求和時,數值位相加,若最高位產生進位則結果溢位
求差時,被加數數值位加上加數數值位的補碼
3,移碼加減運算
- 移碼的和、差等於和、差的補碼。
4,原碼乘法運算
- 原碼一位乘法
(1)確定乘積的符號位。由兩個乘數的符號異或得到。
(2)計算乘積的數值位,乘積的數值部分分為兩個乘數的數值部分之積。 - 原碼二位乘法
原碼兩位乘是用兩位來決定新的部分積的形成,形成4種狀態
5,補碼乘法運算
- 補碼一位乘法
(1)將符號位和數值位合在一起參與運算,直接得出用補碼錶示的乘積,且正數和負數同等對待稱為布斯乘法
(2)符號位參與運算,運算的數均以補碼錶示,被乘數 x 取雙符號位,乘數 y 取單符號位
(3)運算規則 - 補碼二位乘法
6,原碼除法運算
- 先進行判斷:除數是否為0,商是否為0,是否溢位或為不確定的值NaN
- 手算除法基本要點
- 與乘法運算一樣,要將符號位和數值位分開來處理。商的符號為相除兩數符號的異或值,商的數值為兩數絕對值之商。
- 單精度除法,其商的位數一定不會超過n位,因此不會發生溢位;雙精度除法,商的位數可能多於n位,因此,可能發生溢位
- 恢復餘數除法
- 不恢復餘數除法
(1)“正、1、減、負、0、加”:若中間餘數為正數,則上商為1,下次做減法;若中間餘數為負數,則上商為0,下次做加法
7,補碼除法運算補碼恢復餘數除法
補碼恢復餘數除法 採用“夠減則上商為1,不夠減則上商為0”的上商方式,因此,最後若商為負值,則需要“各位取反,末位加1”來得到真正的商
補碼不恢復餘數除法 被除數與除數同號,被除數減去除數;被除數與除數異號,被除數加上除數。餘數與除數同號,商上1,餘數左移一位減去除數;
餘數與除數異號,商上0,餘數左移一位加上除數。(注意:餘數左移加上或減去除數後就得到了新餘數。直到商的位數滿足要求為止。
四.浮點數運算
1,浮點數加減運算
- 對階、尾數運算、規格化、舍入處理、溢位判斷
2,浮點數乘除運算
先進行判0處理,規格化操作和溢位判斷
(1)乘法運算:尾數相乘,指數相加;尾數規格化;尾數舍入處理;溢位判斷浮點數除法運算
(2)除法運算:尾數相除,階相減;尾數規格化;尾數舍入處理;溢位判斷