Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ARM assembly准确地找到32位数字的pallindrome?_Assembly_Arm_Palindrome - Fatal编程技术网

如何使用ARM assembly准确地找到32位数字的pallindrome?

如何使用ARM assembly准确地找到32位数字的pallindrome?,assembly,arm,palindrome,Assembly,Arm,Palindrome,我试图找到一个汇编代码,以确定给定的数字是否是回文。我在网上查到了密码。但我无法理解“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,1

我试图找到一个汇编代码,以确定给定的数字是否是回文。我在网上查到了密码。但我无法理解“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标志。

您不了解哪一部分?如果您想知道它是否是基2中的回文,
RBIT
说明会有所帮助:-)我只是想为面试做准备,还想检查stackoverflow的工作原理。很久以前,我几乎没有学过什么基本的教学法,而且我对它知之甚少。但谢谢你回答我的问题:)