2011-10-01 19 views

回答

4

高級體系結構可能會爲此提供指導。事實上,一個我設計了很多很久以前有一個16位掩碼,其可以指定任意數量的你想使用這種操作的寄存器:

xor r3, bitmask 

每一位又將和檢查,如果它被設置爲1,r3將是xor'與相關的寄存器編輯。然而,這只是作爲預執行模擬器而存在,並且被認爲是不必要的。我想他們認爲在硅片上讓用戶手動做到這一點更便宜。

和先進的裝配也可以提供這種功能,也許讓你寫:

xor r1, r2, r3, r4, r5, r6 

並具有變成機器語言等同的:

xor r1, r2 
xor r1, r3 
xor r1, r4 
xor r1, r5 
xor r1, r6 

也就是說,是當然的,在機器代碼級別上並不是一個多參數指令,只是彙編程序更智能。它也不能與使用兩個以上的論點之一是目的地,如真正的指令相混淆:

add r7, r3, r2  ; r7 = r3 + r2 

然而,這是你會在序列只是正常,特別是如果你沒有您正在使用知道值提前:

xor al, bl 
xor al, 0x11 

如果您有希望進行xor您的註冊不斷項目,可以事先他們通過xor結合第一荷蘭國際集團他們,因爲xor是可交換的:

(a xor b) xor c == a xor (b xor c) 

例如,如果你想用xor0x11然後0x12你註冊,你可以使用:

xor al, 0x03  ; 0x03 is (0x12 xor 0x11) 
+0

嗯,知道了。謝謝! – xboxmods

+0

通常像xor r1,r2,r3這樣的指令是三個地址碼。 r1:= r2 r3 –

+0

@Marco,這取決於彙編器/指令集(您的建議是ARM的一個示例)。我試圖清楚說明我正在討論其他方面的問題,現在我希望通過使用六個參數並解釋其中的差異來更清楚地說明:-) – paxdiablo

相關問題