如何比较数组中的值?

时间:2015-11-20 00:06:36

标签: arm

这里有初学者到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]'

0 个答案:

没有答案