使用循环查找数组的最大值和最小值
Find biggest and smallest values of an array using loops
我已经编写了以下代码,一切都应该很好。它假设使用循环在大小为 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,以防万一。
LDR X11,[X0],#3
读取 64 位值(Xregister),并且 post-递增 #3
?
我非常怀疑 3Bytes != 64bit.
我已经编写了以下代码,一切都应该很好。它假设使用循环在大小为 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,以防万一。
LDR X11,[X0],#3
读取 64 位值(Xregister),并且 post-递增 #3
?
我非常怀疑 3Bytes != 64bit.