set 0xDEADBEEF, %o1
set 0x13579246, %o2
xor %o1, %o2, %o1
什麼是註冊o1?如何在SPARC程序集中使用xor和and
set 0xDEADBEEF, %o1
set 0x13579246, %o2
and %o1, %o2, %o1
什麼是註冊o1?
set 0xDEADBEEF, %o1
set 0x13579246, %o2
xor %o1, %o2, %o1
什麼是註冊o1?如何在SPARC程序集中使用xor和and
set 0xDEADBEEF, %o1
set 0x13579246, %o2
and %o1, %o2, %o1
什麼是註冊o1?
CDFA2CA9和12059246,因爲兩者都是按位運算,所以這裏沒有架構依賴關係。見:http://en.wikibooks.org/wiki/SPARC_Assembly/Arithmetic_Instructions#Logic_Instructions
關於實際計算:
注意的是:
0x0 == 0b0000
0x1 == 0b0001
0x2 == 0b0010
...
0xf == 0b1111
由於在按位操作,在任何鹼基每個數字是2的冪是independnt,它是簡單的創建用於任何基部的表:
在基座2(^表示異或,&裝置和):
& 0 1
0 0 0
1 0 1
^ 0 1
0 0 1
1 1 0
而且在底座16(十六進制):
and 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 1 2 3 4 5 6 7 8 9 A B C D E F
1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
2 0 0 2 2 0 0 2 2 0 0 2 2 0 0 2 2
3 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3
4 0 0 0 0 4 4 4 4 0 0 0 0 4 4 4 4
5 0 1 0 1 4 5 4 5 0 1 0 1 4 5 4 5
6 0 0 2 2 4 4 6 6 0 0 2 2 4 4 6 6
7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
8 0 0 0 0 0 0 0 0 8 8 8 8 8 8 8 8
9 0 1 0 1 0 1 0 1 8 9 8 9 8 9 8 9
A 0 0 2 2 0 0 2 2 8 8 A A 8 8 A A
B 0 1 2 3 0 1 2 3 8 9 A B 8 9 A B
C 0 0 0 0 4 4 4 4 8 8 8 8 C C C C
D 0 1 0 1 4 5 4 5 8 9 8 9 C D C D
E 0 0 2 2 4 4 6 6 8 8 A A C C E E
F 0 1 2 3 4 5 6 7 8 9 A B C D E F
xor 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 0 1 2 3 4 5 6 7 8 9 A B C D E F
1 1 0 3 2 5 4 7 6 9 8 B A D C F E
2 2 3 0 1 6 7 4 5 A B 8 9 E F C D
3 3 2 1 0 7 6 5 4 B A 9 8 F E D C
4 4 5 6 7 0 1 2 3 C D E F 8 9 A B
5 5 4 7 6 1 0 3 2 D C F E 9 8 B A
6 6 7 4 5 2 3 0 1 E F C D A B 8 9
7 7 6 5 4 3 2 1 0 F E D C B A 9 8
8 8 9 A B C D E F 0 1 2 3 4 5 6 7
9 9 8 B A D C F E 1 0 3 2 5 4 7 6
A A B 8 9 E F C D 2 3 0 1 6 7 4 5
B B A 9 8 F E D C 3 2 1 0 7 6 5 4
C C D E F 8 9 A B 4 5 6 7 0 1 2 3
D D C F E 9 8 B A 5 4 7 6 1 0 3 2
E E F C D A B 8 9 6 7 4 5 2 3 0 1
F F E D C B A 9 8 7 6 5 4 3 2 1 0
第一種方法是指這樣做32次非常簡單的計算(一個簡單的變換爲二進制後,然後再轉換爲十六進制),所述第二裝置操作的方式8點的查找表中的你可能會或可能不能提前做好準備。
你能告訴我你是如何得到答案的嗎?我對此感到困惑。 – user2318744 2013-04-25 08:18:15
如果您有SPARC在您的處置,爲什麼你不能只是嘗試它? – mvp 2013-04-25 08:12:36
對不起。我明白如何去做。我做的方法,例如XOR,將兩個數字轉換爲二進制,然後使用邏輯,如果兩者都是0或者兩者都是1,則將0置於0,如果其中任何一個不同,則放入1並創建一個新的二進制數,然後將其轉換回到十六進制 但問題是,我必須做一個定時測試,我不認爲我有時間做所有這些和其他問題。所以我正在尋找一種更快的方法來執行此操作 – user2318744 2013-04-25 08:31:08
只需在程序員模式下啓動Linux'gnome-calculator'或Windows'calc'並使用'XOR'或'AND'按鈕(我相信Mac也有類似的功能)。 – mvp 2013-04-25 08:51:55