第1天-ARM汇编指令
B : 分支
(Branch)
B{条件} <地址>
B 是最简单的分支。一旦遇到一个 B 指令,ARM 处理器将立即跳转到给定的地址,从那里继续执行。注意存储在分支指令中的实际的值是相对当前的 R15 的值的一个偏移量;而不是一个绝对地址。它的值由汇编器来计算,它是 24 位有符号数,左移两位后有符号扩展为 32 位,表示的有效偏移为 26 位(+/- 32 M)。
在其他处理器上,你可能经常见到这样的指令:
OPT 1 LDA &70 CMP #0 BEQ Zero STA &72 .Zero RTS
(取自 Acorn Electron User Guide issue 1 page 213)
在 ARM 处理器上,它们将变成下面这些东西:
OPT 1 ADR R1, #&70 LDR R0, [R1] CMP #0 BEQ Zero STR R0, [R1, #2] .Zero MOV PC, R14
这不是一个很好的例子,但你可以构想如何更好的去条件执行而不是分支。另一方面,如果你有大段的代码或者你的代码使用状态标志,那么你可以使用条件执行来实现各类分支: 这样一个单一的简单条件执行指令可以替代在其他处理器中存在的所有这些分支和跳转指令。
OPT 1 ADR R1, #&70 LDR R0, [R1] CMP R0, #0 STRNE R0, [R1, #2] MOV PC, R14
BL : 带连接的分支
(Branch with Link)
BL{条件} <地址>
BL 是另一个分支指令。就在分支之前,在寄存器 14 中装载上 R15 的内容。你可以重新装载 R14 到 R15 中来返回到在这个分支之后的那个指令,它是子例程的一个基本但强力的实现。它的作用在屏幕装载器 2 (例子 4)中得以很好的展现...
.load_new_format BL switch_screen_mode BL get_screen_info BL load_palette .new_loop MOV R1, R5 BL read_byte CMP R0, #255 BLEQ read_loop STRB R0, [R2, #1]!
关键字:ARM 汇编指令
引用地址:
第1天-ARM汇编指令B/BL
推荐阅读最新更新时间:2024-03-16 14:34
ARM/DSP双核系统的通信接口设计
引 言 嵌入式系统的核心是嵌入式微处理器和嵌入式操作系统。早期的嵌入式系统硬件核心是各种类型的8位和16位单片机;而近年来32位处理器以其高性能、低价格,得到了广泛的应用。近年来,又出现了另一类数据密集处理型芯片DSP。DSP由于其特殊的结构、专门的硬件乘法器和特殊的指令,使其能快速地实现各种数字信号处理及满足各种高实时性要求。随着现代嵌入式系统的复杂度越来越高,操作系统已成为嵌入式系统不可缺少的部分。免费的嵌入式操作系统,如Linux等,随着自身不断的改善,得到了飞速的发展。Linux是一个免费的、强大的、可信赖的、具有可伸缩性与扩充性的操作系统。Linux实现了许多现代化操作系统的理论,并且支持完整的硬件驱动程序、网络通
[嵌入式]
揭晓CES可穿戴创新产品超长电池续航的秘密
可穿戴设备无疑是今年年初美国赌城消费电子展(CES)的重头戏之一,不过有分析人士认为,“CES 2014:智能穿戴有热点无亮点”,原因在于没有一款产品能让消费者一见钟情。这算是给可穿戴设备泼了冷水吗?其实,情况并没有这么糟糕。荣获“CES 2014创新设计与工程奖”的Magellan Echo智能运动手表就是一个亮点,因其创新设计及优异续航力(可以在单节CR2032纽扣电池供电条件下运行长达11个月)而脱颖而出。 这听起来有点不可思议,在单节CR2032纽扣电池供电条件下运行长达11个月!并且性能还远超过其他同类设备,也就意味着Echo并不是通过牺牲性能而换取超低功耗。莫非是能量不守恒了?当然不是!Silicon Lab
[手机便携]
ARM处理器异常处理的返回地址分析
ARM 处理器一共有7 种类型的异常,按优先级从高到低排列如下: Reset Data Abort FIQ IRQ Prefetch Abort SWI Undefined instruction 当任何一个异常发生并得到响应时,ARM内核自动完成以下动作: 1、拷贝CPSR到SPSR_ mode 2、设置适当的CPSR位: 改变处理器状态进入ARM状态; 改变处理器模式进入相应的异常模式; 设置中断禁止位禁止相应中断。 3、更新LR_ mode 4、设置PC到相应的异常向量 当一个异常处理返回时,一共有3 件事情需要处理:通用寄存器的恢复、状态寄存器的恢复以及PC 指针的恢复。 通用寄存器的恢复采用一般的堆栈操作指令,
[单片机]
基于μC/OS—II操作系统的数据采集控制系统
0 引言
随着计算机技术、电子技术和控制技术的发展,智能化、自动化、精确化的灌溉和施肥技术正逐渐取代传统的灌溉方式。在施肥过程中,需要在线检测肥料溶液的酸碱度和电导率以及灌溉压力、管道流量等,然后根据这些参数来控制电磁阀和水泵的运行达到自动灌溉施肥的目的。目前,常用的数据采集控制系统都是为某一实际应用而设计的,通用性和可扩展性差、数据存储能力不足,价格昂贵。因此基于周立功公司的ARM7核心板设计了一种通用的数据采集控制系统,并且已经应用到自动灌溉施肥系统中,能够满足稳定性,实时性以及大容量的数据存储的要求。该数据采集控制系统采用模块化设计,可以很方便的扩展和剪裁模块,同时只要对软件进行少量修改就可以方便的移植到其它应用
[嵌入式]
贸泽电子开售面向便携式电子应用的英飞凌EZ-PD PMG1-B1 USB Type-C高压微控制器
2023年4月17日 – 专注于推动行业创新的知名新品引入 (NPI) 代理商™贸泽电子 (Mouser Electronics) 即日起供货英飞凌的EZ-PD™ PMG1-B1 USB Type-C™微控制器。 EZ-PD PMG1-B1微控制器为工程师提供一种集成式单芯片解决方案,适用于需要灵活安全的MCU和更少物料的高压USB-C应用,如电动工具、小家电、电动自行车等。 贸泽电子供应的EZ-PD PMG1-B1微控制器是高度集成的单端口USB-C供电 (PD) 解决方案。这些高电压的可编程USB供电系统搭载集成式Arm® Cortex® (-M0/M0+) 处理器、128KB闪存、16KB RAM和32KB ROM
[单片机]
ARM筆記:定时器中断的应用
s3c2440芯片中一共有5个16位的定时器,其中有4个定时器(定时器0~定时器3)具有脉宽调制功能,即他们都有个输出引脚,可以通过定时器来控制引脚周期性的高低电平变化,定时器4没有输出引脚。上次脱机运行PWM测试程序实验的时候就用到了这块,所以这次将PWM和定时器放在一起来学习。 定时器部件的时钟源为PCLK,首先通过两个8位预分频器降低频率,定时器0和1共用第一个预分频器,2,3,4共用第二个预分频器。 预分频器输出接入第二级分频器,可以生成5种分频信号(1/2,1/4,1/8,1/16,TCLK),其中8位预分频器是可编程,根据装载值来分频PCLK,值储存在TCFG0和TCFG1中。 定时器内部控制逻辑工作流程如下
[单片机]
基于3G手机的视频监控系统设计与实现
随着3G 网络技术的快速发展以及3G 手机各项功能的增强, 使得利用3G 手机实现随时随地的视频监控已成为可能。而嵌入式技术作为当今IT 业的热门技术, 各种嵌入式芯片如 DSP , A RM, SOC 等被广泛应用于数码、安防、交 通信 号采集、远程医疗等领域[ 1] , 可以预见未来 便携式 多功能的个人医疗数字服务终端会像手机一样普及[ 2] , 用户可以随时随地地将自己重要的生理信息实时、准确、快速地传送到远程医疗中心或家庭护理专家处, 从而得到医生的专业建议和指导, 实现远程医疗监护的应用。文献[ 3] 中的无线监控系统也用到ARM9 芯片和WinCE 操作系统, 但对软件设计部分论述不清晰, 文献[ 4] 论述的基
[电源管理]
基于ARM9处理器的嵌入式Boa服务器的网络远程监测实现方案
随着高科技技术逐渐融入到传统的农副业,温室培养已成为生产反季节作物的方式。介绍了基于S3C2410处理器的温室监测控制系统的设计,并设计了一种基于ARM9处理器的嵌入式Boa服务器的网络远程监测实现方案,用户通过以太网对温室内的环境进行监测和一些设备的控制,提高远端机器的安全可靠性。 随着经济的快速发展和科技的进步,人们的生活水平不断提高,对生活质量的要求越来越高,对春茶的需求也大大增加。使得春茶供不应求,从而提出了温室培养茶树,以缓解人们对春茶的需求。 随着Internet技术的兴起,在嵌入式设备的管理与交互中,基于Web方式的应用成为目前的主流,这种程序结构也就是大家非常熟悉的B/S结构,即在嵌入式设备上运行一个支持脚
[单片机]