⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jump.s

📁 ARM在Embest 下的 运用源码.可以直接在Embest下运行
💻 S
字号:
#        AREA    Jump, CODE, READONLY    ;  name this block of code
.text
.equ	num, 2               	/* Number of entries in jump table */

#        ENTRY                   /*  mark the first instruction to call */

start:
        MOV     r0, #0  		/*  set up the three parameters */
        MOV     r1, #3
        MOV     r2, #2
        BL      arithfunc       /*  call the function */

stop:
        MOV     r0, #0x18               /*  angel_SWIreason_ReportException */
        LDR     r1, =0x20026    /*  ADP_Stopped_ApplicationExit */
        SWI     0x123456                /*  Angel semihosting ARM SWI */

arithfunc:                       /*  label the function */
        CMP     r0, #num        /*  Treat function code as unsigned integer */
        BHS     DoAdd           /*  If code is >=2 then do operation 0. */

        ADR     r3, JumpTable   /*  Load address of jump table */
        LDR     pc, [r3,r0,LSL#2]	/*  Jump to the appropriate routine */

JumpTable:
        .long     DoAdd
        .long     DoSub

DoAdd:
        ADD     r0, r1, r2      /*  Operation 0, >1 */
        MOV     pc, lr  		/*  Return */

DoSub:
        SUB     r0, r1, r2      /*  Operation 1 */
        MOV     pc,lr           /*  Return */

.end
#        END             		/*  mark the end of this file */

⌨️ 快捷键说明

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