adrlabel.s
来自「一些ARM的源程序」· S 代码 · 共 34 行
S
34 行
# AREA adrlabel, CODE,READONLY
# ENTRY ; Mark first instruction
.text
Start:
BL func /* Branch to subroutine */
stop:
MOV r0, #0x18 /* angel_SWIreason_ReportException */
LDR r1, =0x20026 /* ADP_Stopped_ApplicationExit */
SWI 0x123456 /* Angel semihosting ARM SWI */
/* LTORG / Create a literal pool */
.ltorg
func:
ADR r0, Start /* => SUB r0, PC, #offset to Start */
ADR r1, DataArea /* => ADD r1, PC, #offset to DataArea */
# ADR r2, DataArea+4300
/* This would fail as the offset
cannot be expressed by operand2
of an ADD */
ADRL r3, DataArea+4300 /* => ADD r2, PC, #offset1 */
/* ADD r2, r2, #offset2 */
MOV pc, lr /* Return */
DataArea:
.SPACE 8000 /* Clears a 8000 byte area of memory,
starting at the current location,
to zero.*/
.end
# END
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?