我正在编写一个数字操作程序,一步就是反转数组。到目前为止我已经
了reverseArray proc
mov eax, arraySize
mov temp, eax
Imul eax, 4
mov esi, eax
mov eax, 0
mov number, 0
jne L1
L1:
cmp temp, 0
je L3
mov eax, numbers[esi]
mov tempnumbers[ecx], eax
mov eax, tempnumbers[ecx]
call writeDec
call crlf
sub esi,4
add ecx, 4
sub temp, 1
loop L1
L2:
ret
L3:
.If(number >= 0)
mov esi, 0
.ENDIF
mov eax, number
cmp eax, arraySize
je L2
mov eax, tempnumbers[esi]
mov numbers[esi], eax
add esi, 4
add number, 1
loop L3
然而,这仅反转了我的阵列的一半。我是否对esi或ecx计数器做错了什么?任何帮助将不胜感激。
答案 0 :(得分:0)
使用edi代替ecx,并在开始时将其设置为0.