这里有初学者到ARM。我有一个名为bubblesort(in, n)
的函数,其中in
是一个整数数组,n
是数组的长度。
我正在尝试在ARM中执行此if
条件:
if (a[j+1] < a[j]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
这是ARM代码:
23 swap:
24 add r8,r5,#1 // r8 is j + 1
25 mul r8,r8,#4 // r8 = r8 * 4
26 add r9,r5 // r9 is j
27 mul r9,r9,#4 // r9 = r9 * 4
28 cmp [r0+r8],[r0+r9]
29 blt switch
我收到这些错误。我想我理解mul
一个。期待注册。如果我的寄存器用完了怎么办?我只在Pi上有这些寄存器。我已将其他功能用于其他功能。
r0-r3 temp reg(I / O)
r4-r9 storage reg(全球)
r13链接寄存器
r15程序计数器
bubble.s:25:错误:预期ARM寄存器 - “mul r8,r8,#4”
bubble.s:27:错误:预期ARM寄存器 - “mul r9,r9,#4'
bubble.s:28:错误:预期ARM寄存器 - `cmp [r0 + r8],[r0 + r9]'