我应该将数组反转到位。我已经研究了一段时间,这就是我所拥有的。谁能告诉我我做错了什么?
.data
array BYTE 10h, 20h, 30h, 40h
.code
main PROC
mov esi, 0
mov edi, 0
mov esi, OFFSET array
mov edi, OFFSET array + SIZEOF array
mov ecx, SIZEOF array/2
l1: mov al, [esi]
mov bl, [edi]
mov [edi], al
mov [esi], bl
inc esi
dec edi
LOOP l1
call DumpRegs
call DumpMem
exit
main ENDP
END main
答案 0 :(得分:-1)
尝试声明两个数组,一个使用您的值进行初始化,另一个数组可以使用DUP运算符5 DUP(?)
使用循环开始将值从第一个数组移动到第二个数组。
示例:
。数据 myArr1 DWORD 5,4,3,2,1 myArr2 DWORD 5 DUP(?)
.code main proc mov edi,偏移myArr1 添加edi,sizeof myArr1 mov esi,抵消myArr2 mov ecx,myArr2的长度
reverseLoop: 添加ebx,[edi] mov [edi],ebx sub edi,输入myArr2 添加esi,输入myArr1 mov eax,[edi] 致电writeint
LOOP reverseLoop
出口 主要的 结束主要