2. ( \( \mathbf{3 0} \) pts) Write an ARM Cortex M3 assembly code that compares two ASCII character strings to understand which follows the other in alphabetical ordering. Both strings should have the same length as defined by the LENGTH variable held in R2. The starting addresses of the strings are defined by the START1 and START2 variables. If the string defined by START1 is greater than or equal to the other string, clear the GREATER variable held in R1; otherwise set it to 0xFFFFFFFF. Show how your code executes step-by-step using line comments. Example: After execution of test cases: A R1 \( =0 \times 0000000 \), for \( B R 1=0 \times 0000000 \), for \( C \) R1 \( =0 x F F F F F F F \)