0

私は数値操作プログラムを書いています.1つのステップは配列を逆にすることです. これまでのところ、

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 カウンターで何か問題がありましたか? どんな助けでも大歓迎です。

4

1 に答える 1

0

ecx の代わりに edi を使用し、最初は 0 に設定します。

于 2013-04-24T11:46:08.293 に答える