(10)條件設置字節指令測試
條件設置字節指令(Set Byte Conditionally)是80386及其之後CPU所具備的一組指令。它們在測試條件方面與條件轉移是一致的,但在功能方面,它們不是轉移,而是根據測試條件的值來設置其字節操做數的內容爲1或0。blog
條件設置字節指令的通常格式以下:ip
SETnn Reg/Mem ;80386+get
其中:nn是表示測試條件的(見表5.4),操做數只能是8位寄存器或一個字節單元。it
這組指令的執行不影響任何標誌位。io
例5.19 編寫程序段:檢測寄存器EAX的8個16進制中有幾個0H,並把統計結果存入BH中。cli
解:循環
方法1:用條件轉移指令來實現二進制
XOR BH, BH程序
MOV CX, 8 ;測試寄存器EAX——8次
again: TEST AL, 0FH ;測試低四位二進制是否爲0H
JNZ next
INC BH
next: ROR EAX, 4 ;循環向右移四位,爲測試高四位做準備
LOOP again
方法2:用條件設置字節指令來實現
XOR BH, BH
MOV CX, 8 ;測試寄存器EAX——8次
again: TEST AL, 0FH ;測試低四位二進制是否爲0H
SETZ BL ;若是AL的低四位是0,則BL置爲1,不然,BL爲0
ADD BH, BL
ROR EAX, 4
LOOP again