Hi, I wanted to substitute an operand that is a constant value without the syntax that normally indicates an immediate operand. For that reading the manual i saw that %cn is what i need. But it does seem to work: sample program: int main() { asm ("cdp %c0, 0, cr15, cr%c1, cr2, 0": : "n"(3), "n"(5) ); } when i compile it i get: cdp #6,0,cr15,cr#5,cr2,0 note that this is for the ARM architecture I tried to compile the same code with i386 and it works as expected: cdp 6,0,cr15,cr5,cr2,0 (well except that cdp is not a i386 instruction ...) is there a reason for this ? Thanks