Program objective: to store 13 random numbers [0-100) in the array, flip, and output.
TITLE Write a program
INCLUDE Irvine32.inc.data
ARRAY_SIZE = 13RAND_MAX = 100HALF_ARRAY_SIZE = ARRAY_SIZE/2rands DWORD ARRAY_SIZE dup(0)
.codemain PROC
mov esi,offset rands ;address to the randsmov ecx,lengthof rands ;calculate the size of arrayL1: mov eax,RAND_MAX ;for random the maxinum number call RandomRange ;call this function mov [esi],eax ;set the element that is save in EAX to [esi] add esi,TYPE rands ;point to next element loop L1 mov esi,offset rands ;address to the randsmov ecx,lengthof rands ;calculate the size of array
L2: mov eax,[esi] ;put the [esi] to eax for outputing call writeint mov eax,' ' ;output the space call writechar add esi,TYPE rands ;point to next pointer
loop L2 call crlf
mov esi,offset randsmov ecx,HALF_ARRAY_SIZEmov eax,48L3: mov ebx,[esi] ;put the first element to ebx mov ebp,[esi + eax] ;put the last element to ebp mov [esi + eax],ebx ;exchange the element mov [esi],ebp sub eax,8 ;for changeing the pointer add esi,TYPE rands loop L3
mov esi,offset randsmov ecx,ARRAY_SIZE ;for outputing ;L4: mov eax,[esi] call writeint mov eax,' ' call writechar add esi,TYPE rands loop L4 call crlf call waitmsg
exitmain ENDPEND main