Implement the following Merge sort code in ARM assembly language:
MergeSort(numbers - address to integer array, first - integer, last - integer) integer middle if first < last then middle = (first + last) / 2 MergeSort (numbers, first, middle) MergeSort(numbers, middle +1, last) Merge(numbers, first, middle, middle+1, last) end if end MergeSort Merge (numbers, leftFirst, leftLast, rightFirst, rightLast) tempArray - integer array big enough to hold rightLast - leftFirst + 1 elements integer index, saveFirst, index2 index = 0 saveFirst = leftFirst while (leftFirst < leftLast AND rightFirst < rightLast) do if numbers[leftFirst] < numbers[rightFirst] then tempArray[index] = numbers[leftFirst] leftFirst = leftFirst + 1 else tempArray[index] = numbers[rightFirst] rightFirst = rightFirst + 1 end if index = index + 1 end while while leftFirst <= leftLast do tempArray[index] = numbers[leftFirst] index = index + 1 leftFirst = leftFirst + 1 end while while rightFirst <= rightLast do tempArray[index] = numbers[rightFirst] index = index + 1 rightFirst = rightFirst + 1 end while index2 = 0 for index = saveFirst to rightLast do numbers[index] = tempArray[index2] index2 = index2 + 1 end for end Merge