日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作

發布時間:2023/12/8 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

XOR 指令在兩個操作數的對應位之間進行(按位)邏輯異或(XOR)操作,并將結果存放在目標操作數中:

?

XOR destination, source

XOR 指令操作數組合和大小與 AND 指令及 OR 指令相同。兩個操作數的每一對對應位都應用如下操作原則:如果兩個位的值相同(同為 0 或同為 1),則結果位等于 0;否則結果位等于 1。

下表描述的是布爾運算 X十y:

xyx十y
000
011
101
110

與 0 異或值保持不變,與 1 異或則被觸發(求補)。對相同操作數進行兩次 XOR 運算,則結果逆轉為其本身。如下表所示,位 x 與位 y 進行了兩次異或,結果逆轉為 x 的初始值:

xyx十y(x十y)十y
0000
0110
1011
1101

異或運算這種“可逆的”屬性使其成為簡單對稱加密的理想工具。

標志位

XOR 指令總是清除溢岀和進位標志位,并根據目標操作數的值來修改符號標志位、零標志位和奇偶標志位。

檢查奇偶標志

奇偶檢查是在一個二進制數上實現的功能,計算該數中 1 的個數;如果計算結果為偶數,則說該數是偶校驗;如果結果為奇數,則該數為奇校驗。

x86 處理器中,當按位操作或算術操作的目標操作數最低字節為偶校驗時,奇偶標志位置 1。反之,如果操作數為奇校驗,則奇偶標志位清 0。一個既能檢查數的奇偶性,又不會修改其數值的有效方法是,將該數與 0 進行異或運算:

mov al,10110101b? ? ? ? ? ? ? ;5 個 1,奇校驗
xor al, 0?????????????????????????????? ;奇偶標志位清 0 (奇)
mov al, 11001100b? ? ? ? ? ? ?;4 個 1,偶校驗
xor al, 0?????????????????????????????? ;奇偶標志位置 1(偶)

Visual Studio 用 PE=1 表示偶校驗,PE=0 表示奇校驗。

16 位奇偶性

對 16 位整數來說,可以通過將其高字節和低字節進行異或運算來檢測數的奇偶性:

mov ax,64Clh??? ;0110 0100 1100 0001
xor ah, al??????????? ;奇偶標志位置1 (偶)

將每個寄存器中的置 1 位(等于 1 的位)想象為一個 8 位集合中的成員。XOR 指令把兩個集合交集中的成員清 0,并形成了其余位的并集。這個并集的奇偶性與整個 16 位整數的奇偶性相同。

那么 32 位數值呢?如果將數值的字節進行編號,從 B? 到 B? 那么計算奇偶性的表達式為:B? XOR B?? XOR B?? XOR B?。

6.1?布爾和比較指令簡介
6.2?AND指令
6.3?OR指令
6.4?位向量(位映射)
6.5?XOR指令
6.6?NOT(反碼)指令
6.7?TEST指令
6.8?CMP(比較)指令
6.9?置位和清除單個CPU標志位
6.10?64位模式下的布爾指令
6.11?條件跳轉簡介
6.12?條件跳轉指令匯總
6.13?條件跳轉應用及示例
6.14?LOOPZ和LOOPE指令
6.15?LOOPNZ和LOOPNE指令
6.16?使用匯編語言實現IF語句
6.17?使用匯編語言實現邏輯表達式
6.18?使用匯編語言實現WHILE循環
6.19?表驅動選擇
6.20?有限狀態機
6.21?條件控制流偽指令
6.22 .IF、.ELSE、.ELSEIF、.ENDIF偽指令
6.23?用.REPEAT和.WHILE實現循環

總結

以上是生活随笔為你收集整理的汇编语言XOR指令:对两个操作数进行逻辑(按位)异或操作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。