Я пытаюсь изменить массив в сборке, но я не могу успешно это сделать. Программа отлично работала для двойных слов, но теперь не работает для слов. Я проверил его, используя отладчик visual studio. Конечный результат - 98,78,10,00,36, что неверно. Мой код:Обращение к массиву в сборке (masm)
.386
.model flat,stdcall
ExitProcess PROTO,dwExitCode:DWORD
.data
intarray WORD 10h,20h,36h,78h,98h
.code
main PROC
mov esi,OFFSET intarray
mov edi,OFFSET intarray
add edi,SIZEOF intarray
sub edi,TYPE intarray
mov ecx,LENGTHOF intarray/2
L1:
mov eax,[ESI]
mov ebx,[EDI]
mov [EDI],eax
mov[ESI],ebx
add esi,TYPE intarray
sub edi,TYPE intarray
loop L1
invoke ExitProcess,0
main ENDP
END main
Попробуйте найти на этом [очень распространенной проблемой] (http://stackoverflow.com/search?q=reverse+array+%5Bassembly%5D). Одна ошибка в вашем коде заключается в том, что вы загружаете/сохраняете слова, но ваш массив - это слова. –
Я ничего не нашел. –
Вот почему я спросил. Я не просто «люблю» задавать вопросы. –