使用带有间接寻址的循环指令将数组中的元素反转。
但是我遇到以下错误:
错误A2006:未定义符号:arr
错误A2006:未定义符号:arr
错误A2006:未定义符号:已完成
错误A2006:未定义符号:arr
这是我的代码:
INCLUDE Irvine32.inc
.data
arr DWORD B,A,D,C,F,E,H,G ; Array of integers with 8 elements
len DWORD LENGTHOF arr ; The length of the array
.code
main PROC
mov esi,OFFSET arr
mov ecx, LENGTHOF arr/2
reverseArrayOf32bit:
lea edi,[esi+4] ;edi = address of next entry
.next:
mov eax,0
cmp ecx,eax
je .done ; yes, it's done aleady
mov eax,[esi] ;eax = value at start
xchg ebx,[edi] ;ebx = value at end
mov [esi],eax ;Store value from start at end
add esi,8 ;esi = address of next item at start
add edi,8
dec ecx
j .next
.done:
main ENDP