彙編語言--微機CPU的指令系統(五)(條件設置字節指令)

(10)條件設置字節指令測試

條件設置字節指令(Set Byte Conditionally)是80386及其之後CPU所具備的一組指令。它們在測試條件方面與條件轉移是一致的,但在功能方面,它們不是轉移,而是根據測試條件的值來設置其字節操做數的內容爲1或0。blog

條件設置字節指令的通常格式以下:ip

SETnn Reg/Mem ;80386+get

其中:nn是表示測試條件的(見表5.4),操做數只能是8位寄存器或一個字節單元。it

這組指令的執行不影響任何標誌位。io

clip_image002[4]

例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

相關文章
相關標籤/搜索