While reading about Program counter i came to know to that The Program Counter is special in that there is no way to directly modify its value.
Is there any indirect way to access/modify the content of Program Counter?
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
You have to understand that if you modify the PC, the next instruction executed will be the one at the new PC address. That is simply an unconditional jump, and all processors have such an instruction.
Typically there is no
LD PC,addrinstruction, but that is exactly whatJMP addrdoes, so it is not true that you cannot directly modify its value. You cannot however modify its value without modifying the execution path of the code – execution continues from the address specified.In most cases it is possible to do it indirectly also, by for example setting the stack pointer to a location containing the new address and calling a RET return instruction.
Different processors and architectures may behave differently in a number of ways, and the instruction mnemonics I have suggested above are “generic” and not intended to refer to any specific instruction set.