2010-11-23 125 views
0

別人在這個代碼(MC9S08JM60)提高:彙編語言編碼幫助需要

ldhx #0xDFC4; // Vector location 
ldhx ,x  // Fetch vector contents 
jsr ,x  // Execute interrupt function 

我想要做的是在該位置0xABCD,其中,是0xAB在於0xDFC4跳0xCD位於0xDFC5

所以,上面的代碼似乎沒有跳轉到ABCD的位置。

+0

此處理器的字節序是什麼? `ldhx#0xABCD; jsr,x`做你需要的嗎? – ruslik 2010-11-23 22:12:43

回答

1

的HCS08 Reference Manual是在這樣的情況下派上用場:

地址0xDFC4在字節指令LDHX負荷的直接模式到「H」註冊,並在地址0xDFC5字節到「X 「註冊。

我認爲你的第二條指令是可以的。

但我認爲,您的第三條指令JumptoSubRoutine(JSR)會執行偏移量跳轉。嘗試JMP,注意,JSR還會將當前(返回)地址推送到堆棧,從而有效地將堆棧指針遞增2。

0

ldhx 0xDFC4; //獲取向量內容

jsr,x //執行中斷函數