Hello, I am trying to set the value of SP as part of my small RTOS. However, I have a little problem: once I do this __asm { MOV SP, stkptr } the address stored in stkptr (its type is unsigned int* ) is converted. If the address of strptr is 0xE2D4, SP get 0xF2D4. My stack's top is at 0xFC00. I also disable the check for stack underflow/overflow (registers STKUN, STKOV in the A66 file). What is happening here? Are the DPP registers involved? Can I use memory mapping facilities to solve this issue? Kind regards, Tamir Michael
Definitely not the kind of thing you should be trying to do in 'C'. Do this in pure assembler, if you really must do it.