2025-01-04 15:30
【邏輯運算與位移運算】
在早期的計算機中,通常以整個字(word)為單位進行操作,但很快就發現對字中的特定位元(bit)甚至單個位元進行操作也是非常有用的。例如,字符處理時,每個字符通常以 8 位表示。這種情況導致了程式語言和指令集架構中增加了對位元進行打包和解包的指令,這些操作稱為 邏輯運算。
位移運算(Shifts)
位移運算將字中的所有位元向左或向右移動,並用 0 填充空出的位置。這些運算有助於簡化某些數學操作,如乘法或除法。MIPS 中的位移運算包括 邏輯左移(sll) 和 邏輯右移(srl)。例如:
範例:左移運算
假設寄存器 $s0 的初始值為:
0000 0000 0000 0000 0000 0000 0000 1001(two)= 9(two)
執行一個將其左移 4 位的操作後,結果會是:
0000 0000 0000 0000 0000 0000 1001 0000(two)= 144(ten)
這表示數值 9 乘以 16(即 2 的 4 次方)。這種運算的效果與乘法相同,因此,邏輯左移 本質上是將數字乘以 2 的某次方。