彙編語言--微機CPU的指令系統(五)(比較運算指令)

(7)比較運算指令學習

在程序中,咱們要時常根據某個變量或表達式的取值去執行不一樣指令,從而使程序表現出有不一樣的功能。爲了配合這樣的操做,在CPU的指令系統中提供了各類不一樣的比較指令。經過這些比較指令的執行來改變有關標誌位,爲進行條件轉移提供依據。字符串

1、比較指令CMP(Compare Instruction)io

指令的格式:CMP Reg/Mem, Reg/Mem/Imm變量

受影響的標誌位:AF、CF、OF、PF、SF和ZF程序

指令的功能:用第二個操做數去減第一個操做數,並根據所得的差設置有關標誌位,爲隨後的條件轉移指令提供條件。但並不保存該差,因此,不會改變指令中的操做數。數據

2、比較交換指令(Compare And Exchange Instruction)字符

在數據傳送類指令中,咱們介紹了交換指令XCHG,它無論二個操做數的值是什麼,都無條件地進行交換。而比較交換指令,是先進行比較,再根據比較的結果決定是否進行操做數的交換操做。struct

比較交換指令的功能:當二個操做數相等時,置標誌位ZF爲1;不然,把第一操做數的值賦給第二操做數,並置標誌位ZF爲0。系統

a) 8位/16位/32位比較交換指令

指令的格式:CMPXCHG Reg/Mem, AL/AX/EAX ;80486+

受影響的標誌位:AF、CF、OF、PF、SF和ZF

b) 64位比較交換指令

該指令只有一個操做數,第二個操做數EDX:EAX是隱含的。

指令的格式:CMPXCHG8B Reg/Mem ;Pentium+

受影響的標誌位:ZF

例如:假設(AX)=1234H,(BX)=1234H,(CX)=4321H。

CMPXCHG BX, AX ;指令執行後,ZF=1

CMPXCHG CX, AX ;指令執行後,ZF=0,(AX)=4321H,CX的值不變

三、字符串比較指令(Compare String Instruction)

後面學習中介紹

相關文章
相關標籤/搜索