assembly - 如何使用 ARM 汇编找到 32 位数字的回文数?
问题描述
我试图找到一个汇编代码来确定给定的数字是否是回文。我在网上得到了一个代码。但我无法理解“movu”命令。谁能解释一下?
mov R0,1044480
mov R3,0
mov R4,31
movu R2,0x0001
mov R5,0
andu R1,R0,0xffff
.loop:
and R3,R2,R1
lsl R2,R2,1
lsl R3,R3,R4
add R5,R5,R3
sub R4,R4,2
cmp R4,0
bgt .loop
lsr R0,R0,16
lsr R5,R5,16
sub R0,R5,R0
cmp R0,0
beq .palin
mov R0,0
b .exit
.palin:
mov R0,1
.exit:
解决方案
这里有几个问题。当您似乎不太熟悉指令集时,为什么要在汇编中执行此操作?您正在为什么设备编写此汇编代码?当然,如果您正在组装,您至少应该拥有处理器的指令集文档?
现在让我们处理这个问题本身。movu 是 MOV Unsigned 的助记符。这基本上与 MOV 指令的工作方式相同,不同之处在于它不会改变状态寄存器,不像 MOV。通过这种方式,您可以将寄存器移动到目标而无需更改,例如 Z、C 或 N 标志。
推荐阅读
- imagemagick - 在 imagemagick Ruby 中一次合成大量图像
- ios - TableView HeaderSections 隐藏按钮
- c# - Bot Framework Context 等待不等待下一条消息
- css - CSS - 如果 td 有类,则将 td 隐藏在正文中
- reactjs - 在反应中动态地将数据传递给子组件
- javascript - 如何替换 jquery 地图中的数据并在后面添加逗号
- r - 如何根据分组 data.frame 中另一列中的 any() 填充列?
- python - 如何绘制 TensorBoard 图?
- javascript - javascript如何找到包含文本的DOM节点?
- javascript - Jquery 问题创建闪烁的文本和图像