Respuesta :
Answer:
; Use a loop with indirect or indexed addressing to Â
; reverse the elements of an integer array in place
INCLUDE Irvine32.inc Â
.data
   ;declare and initialize an array Â
   array1 DWORD 10d,20d,30d,40d,50d,60d,70d,80d,90d Â
.code Â
main PROC Â
   ;assign esi value as 0
   mov esi,0
   ;find the size of array
   mov edi, (SIZEOF array1-TYPE array1)
   ;find the length of the array
   ;divide the length by 2 and assign to ecx Â
   mov ecx, LENGTHOF array1/2 Â
;iterate a loop to reverse the array elements Â
L1:
   ;move the value of array at esi
   mov eax, array1[esi] Â
   ;exchange the values eax and value of array at edi Â
   xchg eax, array1[edi] Â
   ;move the eax value into the array at esi Â
   mov array1[esi], eax Â
   ;increment the value of esi Â
   add esi, TYPE array1
   ;decrement the value of edi
   sub edi, TYPE array1 Â
   loop L1 Â
;The below code is used to print Â
;the values of array after reversed. Â
   ;get the length of the array Â
   mov ecx, LENGTHOF array1 Â
   ;get the address Â
   mov esi, OFFSET array1 Â
L2: Â
   mov eax, [esi]
   ;print the value use either WriteDec or DumpMems
   ;call WriteDec Â
   ;call crlf Â
   call DumpMem
   ;increment the esi value
   add esi, TYPE array1 Â
   LOOP L2 Â
exit
main ENDP Â
END main