1
想知道是否可以在彙編器中異或多個字節。 因爲你通常會做 XOR AL,A 我只是不知道該怎麼做。 任何幫助,將不勝感激,謝謝。是否可以在彙編器中異或多個項目?
想知道是否可以在彙編器中異或多個字節。 因爲你通常會做 XOR AL,A 我只是不知道該怎麼做。 任何幫助,將不勝感激,謝謝。是否可以在彙編器中異或多個項目?
高級體系結構可能會爲此提供指導。事實上,一個我設計了很多很久以前有一個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)
例如,如果你想用xor
和0x11
然後0x12
你註冊,你可以使用:
xor al, 0x03 ; 0x03 is (0x12 xor 0x11)
嗯,知道了。謝謝! – xboxmods
通常像xor r1,r2,r3這樣的指令是三個地址碼。 r1:= r2 r3 –
@Marco,這取決於彙編器/指令集(您的建議是ARM的一個示例)。我試圖清楚說明我正在討論其他方面的問題,現在我希望通過使用六個參數並解釋其中的差異來更清楚地說明:-) – paxdiablo