; Annahme: W_HIGH und W_LOW enthalten den 16-Bit-Wert ; Vergleich mit 1023 (0x03FF) movlw 0x03 ; HIGH-Vergleichswert subwf W_HIGH, W ; W = W_HIGH - 0x03 btfss STATUS,C ; Carry gesetzt? (W_HIGH >= 0x03) goto GREATER ; wenn nicht, größer btfsc STATUS,Z ; wenn High-Byte == 0x03 goto CHECK_LOW ; dann Low-Byte prüfen ; High-Byte < 0x03 → kleiner goto LESS_OR_EQUAL CHECK_LOW: movlw 0xFF ; LOW-Vergleichswert subwf W_LOW, W ; W = W_LOW - 0xFF btfss STATUS,C ; Carry gesetzt? (W_LOW >= 0xFF) goto GREATER ; wenn nicht, größer LESS_OR_EQUAL: ; hier ist WERT <= 1023 ; … mach was … goto DONE GREATER: ; hier ist WERT > 1023 ; … mach was anderes … goto DONE DONE: