1. A method comprising: receiving a program stored in on-chip memory of a system, the program including a flow control instruction, the flow control instruction referencing a program address operand, the system including a first program address register and a corresponding second program address register, the first program register being pre-loaded with a camouflage program address prior to program execution, the second program register being pre-loaded with an alternate program address prior to program execution, and the camouflage program address matching the program address operand referenced by the flow control instruction; during execution of the program, identifying the flow control instruction in the program and the referenced program address operand; determining if the referenced program address operand is protected; and if the referenced program address operand is protected, substituting the alternate program address for the referenced program address operand such that program execution continues at the alternate program address after execution of the flow control instruction.