使用循环查找数组的最大值和最小值

时间:2021-03-19 22:56:17

标签: arrays loops assembly arm64 armv8

我已经编写了以下代码,一切都应该很好。它假设使用循环在大小为 4 的数组中找到最大和最小值。

我设置了循环,除了我的输出之外的所有内容都不正确。我在第 46 行有一个错误,当将数组加载到寄存器 X11 时,我得到了很大的奇怪数字,导致整个计算出错。

请看看您是否可以建议修复此代码。

//X0 Array, X17 number of runs, X11 Biggest, X12 Smallest

ADR X0,v
LDR X17,=4
LDR X11,[X0],#3
MOV X12,X11
loop:
    **LDR X11,[X0],#3 //Line 46**
    //LSL X11,X0,#3
    CMP X12,X11
    BLT loop1
    SUB X17,X17,#1
    CMP X17,#1
    BEQ exit
    BGT loop
loop1:
    MOV X12,X11
    SUB X17,X17,#1
    CMP X17,#1
    BEQ exit
    BGT loop

我正在使用 DS-5 IDE,以防万一。

1 个答案:

答案 0 :(得分:3)

LDR X11,[X0],#3

读取 64 位值 (Xregister),并通过 #3 进行后递增? 我非常怀疑 3Bytes != 64bit。

相关问题