I asked below question earlier got response from team, but while excuting below instruction getting error65, i.e memory not accessible, Please provide other logic to check SVC number and use CMP instead TST. ; Check SVC number LDR R0, [LR, #-4] TST R0, #0xFF Write an ALP program for ARM Cortex M3/4 to perform the following (1) SVC is to be called from an application task running at Thread unprivileged mode. (2) Two parameters are passed to the handler via R1, R2. (3) If the SVC number is 0x20, then the addition of the data in R1,R2 should be performed (4) Return and resume application task ; Start of program AREA MyCode, CODE, READONLY ; Define the SVC handler function SVC_Handler ; Save context of the interrupted task PUSH {LR} ; Check SVC number LDR R0, [LR, #-4] TST R0, #0xFF BEQ perform_addition ; SVC not handled B . perform_addition ; Get parameters from R1 and R2 LDR R1, [R1] LDR R2, [R2] ; Perform addition ADD R0, R1, R2 ; Return result MOV R1, R0 ; Restore context and return from interrupt POP {PC} ; Define the main function MAIN ; Call SVC with number 0x20 and parameters in R1 and R2 MOV R0, #0x20 MOV R1, #10 MOV R2, #20 SVC #0 ; End of program END
I asked below question earlier got response from team, but while excuting below instruction getting error65, i.e memory not accessible, Please provide other logic to check SVC number and use CMP instead TST.
; Check SVC number
LDR R0, [LR, #-4]
TST R0, #0xFF
Write an ALP
(1) SVC is to be called from an application task running at Thread unprivileged mode.
(2) Two parameters are passed to the handler via R1, R2.
(3) If the SVC number is 0x20, then the addition of the data in R1,R2 should be performed
(4) Return and resume application task
; Start of program
AREA MyCode, CODE, READONLY
; Define the SVC handler function
SVC_Handler
; Save context of the interrupted task
PUSH {LR}
; Check SVC number
LDR R0, [LR, #-4]
TST R0, #0xFF
BEQ perform_addition
; SVC not handled
B .
perform_addition
; Get parameters from R1 and R2
LDR R1, [R1]
LDR R2, [R2]
; Perform addition
ADD R0, R1, R2
; Return result
MOV R1, R0
; Restore context and return from interrupt
POP {PC}
; Define the main function
MAIN
; Call SVC with number 0x20 and parameters in R1 and R2
MOV R0, #0x20
MOV R1, #10
MOV R2, #20
SVC #0
; End of program
END
![](/static/compass_v2/shared-icons/check-mark.png)
Trending now
This is a popular solution!
Step by step
Solved in 3 steps
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![Database System Concepts](https://www.bartleby.com/isbn_cover_images/9780078022159/9780078022159_smallCoverImage.jpg)
![Starting Out with Python (4th Edition)](https://www.bartleby.com/isbn_cover_images/9780134444321/9780134444321_smallCoverImage.gif)
![Digital Fundamentals (11th Edition)](https://www.bartleby.com/isbn_cover_images/9780132737968/9780132737968_smallCoverImage.gif)
![C How to Program (8th Edition)](https://www.bartleby.com/isbn_cover_images/9780133976892/9780133976892_smallCoverImage.gif)
![Database Systems: Design, Implementation, & Manag…](https://www.bartleby.com/isbn_cover_images/9781337627900/9781337627900_smallCoverImage.gif)
![Programmable Logic Controllers](https://www.bartleby.com/isbn_cover_images/9780073373843/9780073373843_smallCoverImage.gif)