計算機體系結構中的移位微操作是什麼?
移位微操作用於資料的序列傳輸,並與算術、邏輯和幾種資料處理操作結合使用。暫存器的內容可以向左或向右移位。
同時,位移位時,第一個觸發器保持來自序列輸入的二進位制資料。在左移操作中,序列輸入將一位傳輸到最右端位置。在右移操作中,序列輸入將一位傳輸到最左端位置。由序列輸入傳輸的資料決定移位的型別。
移位微操作的型別
移位微操作共有三種類型:
邏輯移位
它透過序列輸入傳輸 0。符號 **"shl"** 可用於邏輯左移,**"shr"** 可用於邏輯右移。
R1 ←R1 shl R1
R2 ←R1 shr R2
暫存器符號應與箭頭兩側的符號等效。
迴圈移位
這會將暫存器的位在兩端迴圈或旋轉,而不會出現資料或內容的問題。在迴圈移位中,移位暫存器的序列輸出連線到其序列輸入。**"cil"** 和 **"cir"** 分別用於迴圈左移和右移。移位微操作的符號表示在表中顯示。
移位微操作
符號表示 | 描述 |
---|---|
R ←R1 shl R | 左移暫存器 R |
R ←R1 shr R | 右移暫存器 R |
R ←R1 cil R | 迴圈左移暫存器 R |
R ←R1 cir R | 迴圈右移暫存器 R |
R ←R1 ashl R | 算術左移 R |
R ←R1 ashr R | 算術右移 R |
算術移位
這會將帶符號二進位制數向左或向右移動。算術左移將帶符號二進位制數乘以 2,而左移則將該數除以 2。由於帶符號數在乘以或除以 2 時保持相等,因此算術移位微操作使符號位保持不變。
Rn-1 | Rn-2 | R→ | R1 | R0 |
符號位
算術右移
暫存器中最左邊的位影響符號位,其餘位影響數字。正數的符號位為 0,負數的符號位為 1。負數採用二進位制補碼形式。該圖顯示了一個 n 位的符號暫存器。
最左端位置的位 Rn-1 保持符號位。
Rn-2 是數字的最高有效位,並且
R0 是最低有效位。算術右移使符號位保持不變,並將數字(包括符號位)向右移動。因此
Rn-1 保持不變,
Rn-2 接收到來自
Rn-1 的位,以此類推,直至暫存器中的其他位。中的位
R0 將丟失。
廣告