Я пишу программу на ассемблере, которая должна принять значение нажатия клавиши, сохранить его в регистре и посмотреть, что это за значение.
Мне удалось сохранить 0x00000002 после нажатия клавиши 2, в регистр, который я хотел сохранить, в котором он называется «r1».
Теперь я заблудился.Сейчас я пытаюсь сравнить это с некоторыми шестнадцатеричными числами, чтобы потом узнать, что это за значение, и использовать его в другой функции.Вот как выглядит мой код:
cmp r1, #0x30
beq savekey
cmp r1, #0x31
beq savekey
cmp r1, #0x32
beq savekey
cmp r1, #0x33
beq savekey
cmp r1, #0x34
beq savekey
cmp r1, #0x35
beq savekey
cmp r1, #0x36
beq savekey
cmp r1, #0x37
beq savekey
cmp r1, #0x38
beq savekey
cmp r1, #0x39
beq savekey
Ожидаемый результат этого, как я думал, будет заключаться в том, что он будет переходить к функции «ключ сохранения» всякий раз, когда он распознает, что это число.Однако этого никогда не происходит, и он просто пропускает их все.
Как я могу сделать сравнение между регистром и шестнадцатеричным разным, чтобы он работал правильно?И есть ли какой-нибудь более простой способ написать это, чтобы мне не приходилось писать регистр для каждой цифры?