3. (25 points) Analyze assembly program Consider the following code segment. Istr: .string "You will be tested!" Istrf: .text ; Assemble Into program memory. (2) . (2) RESET: Dov.W STACK END, SP (2) Initialize stackpointer StopWDT: mov.W ENOTPWWOTHOLD, SWDTCTL (S) Stop watchdog timer mov. W elstr. 4 mov.W Elstrf R10 nov.W R10. R11 (1) sub. R4, R11 (1) rra.W R11 (1) add. -1. Rie (1) next: mov.b R4, R5 mov.b (Rie), -1(R4) mov.b RS, (R10) (4); dec.W R10 dec. R11 ; (1) jnz gnext (2) Jep $ jump to current location 'S' (endless loop) A. (20 points) What does this program do? Add code comments. B. (5 points) Calculate the total execution time in seconds (before reaching the infinite loop at the end of the program). The numbers in paranthesis specify the number of dock cydes needed for each instruction to execute. Assume the clock frequency is 2 MHz. How many instructions are executed in this program (before reaching the infinite loop)? 3. (25 points) Analyze assembly program Consider the following code segment. Istr: .string "You will be tested!" Istrf: .text ; Assemble Into program memory. (2) . (2) RESET: Dov.W STACK END, SP (2) Initialize stackpointer StopWDT: mov.W ENOTPWWOTHOLD, SWDTCTL (S) Stop watchdog timer mov. W elstr. 4 mov.W Elstrf R10 nov.W R10. R11 (1) sub. R4, R11 (1) rra.W R11 (1) add. -1. Rie (1) next: mov.b R4, R5 mov.b (Rie), -1(R4) mov.b RS, (R10) (4); dec.W R10 dec. R11 ; (1) jnz gnext (2) Jep $ jump to current location 'S' (endless loop) A. (20 points) What does this program do? Add code comments. B. (5 points) Calculate the total execution time in seconds (before reaching the infinite loop at the end of the program). The numbers in paranthesis specify the number of dock cydes needed for each instruction to execute. Assume the clock frequency is 2 MHz. How many instructions are executed in this program (before reaching the infinite loop)