Требуется помощь в кодировании на ассемблере - PullRequest
0 голосов
/ 24 ноября 2010

Может кто-нибудь улучшить этот код (MC9S08JM60):

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

То, что я хочу сделать, это перейти в местоположение 0xABCD, где 0xAB лежит в 0xDFC4 , а 0xCD лежит в 0xDFC5 .

Таким образом, приведенный выше код, похоже, не переходит на ABCD местоположение.

1 Ответ

1 голос
/ 24 ноября 2010

Справочное руководство HCS08 удобно в такой ситуации:

Непосредственный режим инструкции LDHX загружает в байте по адресу 0xDFC4 в регистр "H", а байт по адресу 0xDFC5 в регистр "X".

Я думаю, что твоя вторая инструкция в порядке.

Но ваша третья инструкция, JumptoSubRoutine (JSR), делает смещение, я думаю. Попробуйте JMP, x

Обратите внимание, что JSR передает текущий (обратный) адрес в стек, эффективно увеличивая указатель стека на два.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...