macrolib.s

来自「在S3C44b0上移植ucos并实现哲学家就餐问题的演示」· S 代码 · 共 20 行

S
20
字号
;************************************************************************************************************
;FileName:MACROLIB.S
;Function:宏汇编
;Copyright:WangZengzhi
;Time:2008.6.1
;*************************************************************************************************************

    MACRO
$HandlerLabel HANDLER $HandleLabel

$HandlerLabel
    sub	    sp,sp,#4	    ;decrement sp(to store jump address)
    stmfd   sp!,{r0}	    ;PUSH the work register to stack(lr doest push because it return to original address)
    ldr	    r0,=$HandleLabel;load the address of HandleXXX to r0
    ldr	    r0,[r0]	   		;load the contents(service routine start address) of HandleXXX
    str	    r0,[sp,#4]	    ;store the contents(ISR) of HandleXXX to stack
    ldmfd   sp!,{r0,pc}	    ;POP the work register and pc(jump to ISR)
    MEND
;************************************************************************************************************
 END

⌨️ 快捷键说明

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