ARM体系结构与编程学习(六)

本文介绍了ARM体系结构中的一些关键指令,包括ADR伪指令的使用,如何利用跳转表实现程序跳转,以及LDR指令在加载内存地址时的应用。通过示例代码详细解析了这些指令的工作原理和实际编程中的应用。
摘要由CSDN通过智能技术生成

ADR伪指令实例

;设置本段程序的名称及属性

AREA   adrlabel ,CODE,READONLY

             ENTRY

start

;跳转到子程序func执行

             BL  func

;调用angel_SWIreason_ReportException

;ADP_Stopped_ApplicationExit

;ARM semihosting SWI

stop

            MOV  R0,#0X18                  ;将0X18赋值给R0,0x18立即数对应宏angel_SWIreason_ReportException

            LDR   R1,=0X20026           ;将0X20026 赋值给R1,0X20026 立即数对应宏ADP_Stopped_ApplicationExit,表示程序

                                                      ;正常退出

            SWI   0X123456                 ;结束程序,将控制权交给调试器

;定义一个数据缓冲区,用于生成地址标号相对于PC的偏移量

            LTORG

func

;下面的伪指令ADR被汇编成:SUB  R0,PC ,#OFFSET TO START

            ADR  R0,start

;下面的伪指令ADR被汇编成:ADD  R1,PC,#OFFSET TO Dat

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值