loadcon.s

来自「一些ARM的源程序」· S 代码 · 共 42 行

S
42
字号
#        AREA Loadcon, CODE, READONLY
#        ENTRY                           ;  Mark first instruction
.text
start:
        BL      func1                   /*  Branch to first subroutine */
        BL      func2                   /*  Branch to second subroutine */

stop:
        MOV     r0, #0x18               /*  angel_SWIreason_ReportException */
        LDR     r1, =0x20026    		/*  ADP_Stopped_ApplicationExit */
        SWI     0x123456                /*  Angel semihosting ARM SWI */
        
func1:
        LDR     r0, =42         		/*  => MOV R0, #42 */
        LDR     r1, =0x55555555 		/*  => LDR R1, [PC, #offset to
                                                    		Literal Pool 1] */
        LDR     r2, =0xFFFFFFFF         /*  => MVN R2, #0 */
        MOV     pc, lr

.ltorg	
#		.long 0x55555555               	/*  Literal Pool 1 contains
#                                        					literal &55555555 */

func2:
        LDR     r3, =0x55555555         /*  => LDR R3, [PC, #offset to
                                                              Literal Pool 1] */
#       LDR r4, =0x66666666   
										/*  If this is uncommented it
                                        	will fail, as Literal Pool 2
                                         	is not accessible (out of
                                        	reach) */
        MOV     pc, lr
.ltorg	

LargeTable:
        .SPACE        4200        /*  Clears a 4200 byte area of memory,
                                          	starting at the current location,
                                          	to zero. */
.end
#        END                             ;  Literal Pool 2 is empty

⌨️ 快捷键说明

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