我不是真的好,組裝等等可能存在更好的答案(這一個工程)。
TITLE Reversing an array without using oneother array
INCLUDE Irvine32.inc
.data
array1 DWORD 10d,20d,30d,40d,50d,60d,70d,80d,90d
.code
main PROC
mov ESI, OFFSET array1 ;ESI now points to the first item of array1
mov EDI, SIZEOF array1
add EDI, OFFSET array1
sub EDI, TYPE array1 ;EDI now points to the last item of array1
mov ECX, LENGTHOF array1
shr ECX, 1 ;now ecx is half the length of the array1
L1: mov EAX, [ESI] ;in this loop we reverse the items of the array
mov EBX, [EDI]
mov [EDI],EAX
mov [ESI],EBX
add ESI, TYPE array1
sub EDI, TYPE array1
LOOP L1
mov ECX, LENGTHOF array1;here we just print the array
mov ESI, OFFSET array1
L2: MOV EAX, [ESI]
call WriteInt
call Crlf
add ESI, TYPE array1
LOOP L2
exit
main ENDP
END main
也許從思考如何用一種更熟悉的語言開始。 – 2011-03-09 20:45:53
用C語言編寫答案,然後編譯爲彙編程序並將其爵士化,看起來就像您自己輸入的那樣。 :D – 2011-03-10 13:39:28
真棒用戶名哈哈。 – darko 2011-03-10 22:08:54