天天看點

第六章 條件處理

操作

說明

AND

源操作數和目的操作數進行邏輯與操作

OR

源操作數和目的操作數進行邏輯或操作

XOR

源操作數和目的操作數進行邏輯異或操作

NOT

對目标操作數進行邏輯非操作

TEST

源操作數和目的操作數進行邏輯與操作,并适當地設定 CPU 标志位

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

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

要将零标志位清零,就把操作數與 1 進行 OR 操作:

TEST 指令不修改目的操作數,而 AND 指令則會修改目的操作數。若要符号标志位置 1,将操作數的最高位和 1 進行 OR 操作;若要清除符号标志位,則将操作數最高位和 0 進行 AND 操作:

若要進位标志位置 1,用 STC 指令;清除進位标志位,用 CLC 指令:

若要溢出标志位置 1,就把兩個正數相加使之産生負的和數;若要清除溢出标志位,則将操作數和 0 進行 OR 操作:

基于零标志位、進位标志位、溢出标志位、奇偶标志位和符号标志位的跳轉。

助記符

标志位/寄存器

JZ

為零跳轉

ZF=1

JNO

無溢出跳轉

OF=0

JNZ

非零跳轉

ZF=0

JS

有符号跳轉

SF=1

JC

進位跳轉

CF=1

JNS

無符号跳轉

SF=0

JNC

無進位跳轉

CF=0

JP

偶校驗跳轉

PF=1

JO

溢出跳轉

OF=1

JNP

奇校驗跳轉

PF=0

JE

相等跳轉 (leftOp=rightOp)

JNE

不相等跳轉 (leftOp M rightOp)

JCXZ

CX=0 跳轉

JECXZ

ECX=0 跳轉

JRCXZ

RCX=0 跳轉(64 位模式)

JA

大于跳轉(若 leftOp > rightOp)

JB

小于跳轉(若 leftOp < rightOp)

JNBE

不小于或等于跳轉(與 JA 相同)

JNAE

不大于或等于跳轉(與 JB 相同)

JAE

大于或等于跳轉(若 leftOp ≥ rightOp)

JBE

小于或等于跳轉(若 leftOp ≤ rightOp)

JNB

不小于跳轉(與 JAE 相同)

JNA

不大于跳轉(與 JBE 相同)

JG

JL

JNLE

不小于或等于跳轉(與 JG 相同)

JNGE

不大于或等于跳轉(與 JL 相同)

JGE

JLE

JNL

不小于跳轉(與 JGE 相同)

JNG

不大于跳轉(與 JLE 相同)

2.循環的實作

3.測驗分數的評級(1)

4.3.測驗分數的評級(2)

7.布爾電腦(1)

8.布爾電腦(2)

9.自定義秘鑰輸入