Here is the instructions given:
Use a loop with indirect or indexed addressing to reverse the elements of an integer array in place. Do
not copy the elements to any other array. Use the SIZEOF, TYPE, and LENGTHOF operators to make
the program as flexible as possible if the array size and type should be changed in the future. Optionally,
you may display the modified array by calling the DumpMem method from the Irvine32 library.
Here is my code; I am experiencing an infinite loop then an error for some reason
.data array BYTE 10h, 20h, 30h, 40h .code main PROC mov esi, 0 mov edi, 0 mov esi, OFFSET array + SIZEOF array - 1 mov edi, OFFSET array + SIZEOF array - 1 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