SPARC 彙編/算術指令
這些是用於加法、減法和乘法的基本運算。請注意,這些算術指令中的任何一個都可以將暫存器或立即值作為op2引數。所有其他引數(rd 和rs1必須是暫存器)。
指令
|
add
|
將 rs1 和 op2 相加,並將結果儲存在 rd 中。
指令
|
addcc
|
與上面相同,只是它設定條件碼。
指令
|
sub
|
從 rs1 中減去 op2,並將差值儲存在 rd 中
指令
|
subcc
|
與上面相同,只是它設定條件碼。
指令
|
mulcc
|
執行乘法運算中的單個步驟。將部分結果儲存在 Y 暫存器中。完整的乘法演算法將在後面詳細討論。
這些指令考慮了進位位的設定,以便可以將大數字(大於機器字)虛擬地作為單個實體進行操作。
指令
|
addx
|
執行擴充套件加法(將兩個運算元和進位位相加),並將結果儲存在 rd 中。
指令
|
addxcc
|
與上面相同,但設定條件碼。
指令
|
subx
|
執行擴充套件減法(從 rs1 中減去 op2 和 C),並將結果儲存在 rd 中。
指令
|
subxcc
|
與上面相同,但設定條件碼。
指令
|
tsubcc
|
指令
|
tsubcctv
|
指令
|
taddcc
|
指令
|
taddcctv
|
這些操作會影響 Y 暫存器。
指令
|
rdy
|
將 Y 暫存器的內容讀入 rd 目標暫存器
指令
|
wry
|
對 rs1 和 op2 值進行異或運算,並將結果儲存在 Y 暫存器中。
指令
|
and
|
執行 rs1 和 op2 的按位與運算,並將結果儲存在 rd 中。
指令
|
andcc
|
與上面相同,設定條件碼。
指令
|
or
|
執行 rs1 和 op2 的按位或運算,並將結果儲存在 rd 中。
指令
|
orcc
|
與上面相同,設定條件碼。
指令
|
xor
|
執行 rs1 和 op2 之間的按位異或運算。將結果儲存在 rd 中。
指令
|
xorcc
|
與上面相同,設定條件碼。
指令
|
xnor
|
執行 rs1 和 op2 之間的按位異或非運算。將結果放入 rd 中。
指令
|
xnorcc
|
與上面相同,設定條件碼。
指令
|
andn
|
將 rs1 與 op2 的按位反運算進行與運算。將結果儲存在 rd 中。
指令
|
andncc
|
與上面相同,設定條件碼。
指令
|
orn
|
將 rs1 與 op2 的按位反運算進行或運算。將結果儲存在 rd 中。
指令
|
orncc
|
與上面相同,設定條件碼。
指令
|
sll
|
執行 rs1 的邏輯左移。移位量根據 op2 的值確定。將結果儲存在 rd 中。
指令
|
srl
|
執行 rs1 的邏輯右移。移位量是 op2 的值。將結果儲存到 rd 中。
指令
|
sra
|
執行 rs1 的算術右移。移位量是 op2 的值。將結果儲存在 rd 中。