# 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