Hi I need help with this ARM assembly quicksort program. I’m abeginner and very confused with ARM 90

Hi I need help with this ARM assembly quicksort program. I’m abeginner and very confused with ARM 90% of the time, so I’m sorryin advance. I can’t tell if it is correct or incorrect.
assignment description: You are to convert thefollowing C quicksort program to ARM assembler. There are numerouswebsites that describe the quicksort algorithm. Your program must follow these conventions: A calling function must use a stack to pass arguments to thecalled function. When the called function returns, it is theresponsibility of the calling function to remove the arguments fromthe stack. All registers that a called function will be using to performcalculations must first be pushed onto the stack along with thereturn address in r14. This is typically the first instruction ofthe function. When it is time for the function to return, theregisters will be restored to their original values. The returnaddress will be popped into the pc. You may use any of the 4 stack types. Make you program scalable so that it is easy to change the arraysize. Your quicksort sorts an array of unsigned words (DCD) intoascending order. Before sorting you will need to copy the array to address0x40000000.
here is my code: SRAM EQU 0x40000000 AREA Program5, CODE, READONLYENTRYbase RN 0 left RN 1 right RN 2 i RN 3 j RN 4 min RN 5 pivot RN 6 array RN 7 temp RN 8 ADR r10, =SRAMLDRB array, sourceArraySizeLSR array, array, #2MOV r8, arrayLDR r6, =sourceArray int LDR r11, [r6], #4STR r11, [r10], #4SUBS r8,r8,#1BNE intMOV sp, r10LDR base, =SRAMMOV left, #0SUB right, array, #1STMDB sp!, {base, left,right}BL quicksort quicksort STMIA sp!, {r3-r7,r9,lr}LDR base, [sp, #-40]LDR left,[sp, #-36]LDR right, [sp, #-32]ADD min, left, rightLSR min, min, #1MOV i, leftMOV j, rightLDR pivot,[base, min, LSL #2] loop CMP left, jBLT loop2CMP i, rightBLT loop2 loop2 LDR r8, [base, i, LSL #2]CMP r8, pivotADDLT i,i, #1BLT loop2B return loop3 LDR r8, [base,i, LSL #2]CMP r8, pivotSUBGT j,j, #1BGT loop3CMP i, jBLE ifBGT else if LDR r8, =sourceArrayLDR r8, [r8, i,LSL #2]MOV temp, r8LDR r8,[base, j, LSL #2]STR r8, [base, i, LSL #2]STR r8,[base, j, LSL #2]ADD i,i, #1SUB j,j, #1B loop else CMP left,jBLT quickJCMP i, rightBLT quickIB return quickJ MOV right, jSTMIA sp!, {base,left,j}BL quicksortLDMDB sp!, {base, left, j} quickI MOV left, iSTMIA sp!, {base, i, right}BL quicksortLDMDB sp!, {base, i, rightreturn LSMDB sp!, {r3-r7,r9, pc} stop b stop sourceArray DCD 110, 5, 10, 3 ,22, 100, 1, 23, 6, 12, 654, 1sourceArraySize DCB (sourceArraySize- sourceArray)END . . .

 
Do you need a similar assignment done for you from scratch? We have qualified writers to help you. We assure you an A+ quality paper that is free from plagiarism. Order now for an Amazing Discount!
Use Discount Code "Newclient" for a 15% Discount!

NB: We do not resell papers. Upon ordering, we do an original paper exclusively for you.