Ich bräuchte ein schnelles Mittel, um zu überprüfen, ob in einer Variable eine bestimmte Bitmaske gesetzt ist. Laut i8086.de bietet sich hierfür die TEST-Instruktion an, indem ich in der Prüfmaske die zu überprüfenden Bits auf 1 setze, alle anderen auf 0. Laut dieser Beschreibung müsste im folgenden Programm 3x True ausgegeben werden.
Code: Alles auswählen
Define.l MyLong = %10010111101
!MOV eax, [v_MyLong]
!TEST eax, 00000000001b ; Bit 0 gesetzt?
!JZ @f
Debug "True 1"
!@@:
!TEST eax, 10000100000b ; Bit 10 oder Bit 5 gesetzt?
!JZ @f
Debug "True 2"
!@@:
!TEST eax, 00100000010b ; Bit 1 oder Bit 8 gesetzt?
!JNZ @f
Debug "True 3"
!@@:
Gruß, Mok.