assembly - 如何将寄存器与十六进制进行比较
问题描述
我正在用汇编程序编写一个程序,该程序假设获取按键的值,将其存储在寄存器中并查看该值是什么。
按下键 2 后,我设法将 0x00000002 保存到我想保存的寄存器中,该寄存器称为“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
我认为的预期结果是,只要它识别出它是一个数字,它就会进入函数“savekey”。然而,这永远不会发生,它只是跳过所有这些。
我怎样才能在寄存器和十六进制之间进行比较,以便它可以正常工作?有没有更简单的方法可以写这个,所以我不必为每个数字写一个案例?
解决方案
我通过用#8替换例如#0x38来解决它。但是我仍然想知道如何简化代码。
推荐阅读
- google-cloud-speech - Google ASR for Arabic(埃及语、科威特语、沙特语)是否可以在本地使用?
- linux - 将更新版本的包添加到 Yocto
- sql - 带有父子记录的 Rails group_by 查询
- email - Outlook 上的所有标签均已损坏
- java - 如何使用 Bukkit API 触发事件?
- oracle - 具有多个值的 OUT 参数
- javascript - 具有键为数组的对象数组需要计算数组中作为键的每个值
- javascript - 如何使用画布沿特定路径移动角色?
- python - pandas 用列表过滤列表
- tensorflow - TensorFlow clip_by_value 与 Keras NonNeg