Define a bit array table: just values, no storage FIRSTBIT EQU 0 SECOND EQU 3 TWENTIETH EQU .20 Define storage for array BITFLAGS EQU START BITFALGS1 EQU START+1 Write some macros, such as: IFBITON MACRO A BMV1 SET A/8 BMV2 SET A-(8*BMV1) BTFSC BITFLAGS+BMV1,BMV2 ; do next if bit is set ENDM IFBITON TWENTIETH will generate a BTFSC BITFLAGS+2,4 I find this very helpful: I don't have to remember which byte a particular flag is in, I just need the flag name.