有人可以改进此代码(MC9S08JM60):
ldhx #0xDFC4; // Vector location
ldhx ,x // Fetch vector contents
jsr ,x // Execute interrupt function
我想要做的是跳转到0xABCD位置, 0xAB 位于 0xDFC4 中, 0xCD 位于 0xDFC5
所以,上面的代码似乎没有跳转到 ABCD 位置。
答案 0 :(得分:1)
HCS08 Reference Manual在这种情况下很方便:
指令的立即模式LDHX将地址0xDFC4的字节装入“H”寄存器,将地址0xDFC5的字节装入“X”寄存器。
我认为你的第二条指示没问题。
但我认为你的第三条指令JumptoSubRoutine(JSR)会进行偏移跳跃。试试JMP,x
另请注意,JSR会将当前(返回)地址推送到堆栈,从而有效地将堆栈指针递增2。