swihandler.s

来自「ARM汇编实现软中断」· S 代码 · 共 24 行

S
24
字号
       AREA swihandler,CODE,READONLY
       EXPORT   SWIHandler
MAXSWI   EQU   2
SWIHandler
       STMFD	   SP!,{R0-R12,LR}   
       LDR		   R0,[LR,#-4] 
	   BIC         R0,R0,#0XFF000000
	   CMP		   R0,#MAXSWI
	   LDRLE	   PC,[PC,R0,LSL #2]
	   B           OutOfRange
SWIJumpTable
       DCD         SWIEND
       DCD         SWI1
SWI1
       LDMFD       SP!,{R0-R3}
       ADDS        R2,R0,R2           ;R2放结果的低位
       ADC         R3,R1,R3           ;R3放结果的高位
       STMFD       SP!,{R0-R3}
       B           SWIEND
OutOfRange
       NOP
SWIEND
       LDMFD       SP!,{R0-R12,PC}^
       END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?