I've tried a variety of methods for storing a bit address in ASM so I can subsequently SET/CLR that bit but have had no luck. Here's the pseudo-code for what I want to do: 1 - Initialize an 8-bit variable (Addr) in my ASM module with the bit address (say 0x97), then 2 - SETB Addr or CLR Addr If I hard-code an address, say for P1.7, it works fine: SETB 0x97 Also if I pass in an offset to a base address it works fine: MOV ACC,R5 SETB 0x90+ACC Any suggestions for how I can optimize my code so I just have to use #2 above?