Ho provato con questa soluzione, ma non è del tutto corretta:
unsigned int opcode_addr_code = addr_code >> 2;
opcode_addr_code += 0x08000000;

ora opcode_addr_code contiene 0x0a7efd7a