In: Electrical Engineering
Q3. Demonstrate the process of executing a nested subroutine, where you will have three subroutines. Subroutine number 2 will be called from subroutine number 1, while subroutine number 3 will be called from subroutine number 2. In Keil uVision, screenshot your result, by showing the value of PC and LR. Discuss your results by relating the values in PC, LR and stack for each subroutine call.
Example:Example:
AREA subrout, CODE, READONLY ; Name this block of code
ENTRY ; Mark first instruction to execute
start MOV r0, #10 ; Set up
parameters
MOV r1, #3
BL doadd ;
Call subroutine
stop MOV r0, #0x18 ; angel_SWIreason_ReportException
LDR r1, =0x20026 ; ADP_Stopped_ApplicationExit
SVC #0x123456 ; ARM semihosting (formerly SWI)
doadd ADD r0, r0,
r1 ; Subroutine
code
BX
lr
; Return from subroutine
END
; Mark end of file