ARM base instruction -- b bl bx blx
'B{cond} <target_address> '分支指令 - 类似于goto
{} 代表可有可无,<>代表缺少就报错,cond为指令执行的条件码,target_address为指令跳转的目标地址。
'BL{cond} <target_address> '相对跳转指令 - 类似于函数调用
跳转范围限制±32M,PC=PC±32M
【L】决定由硬件自动保存下调指令的返回地址到lr,用于函数调用
// B和BL指令均可跳转到指令中的目标地址。-地址相关码/地址无关码
'BX{cond} <Rm>' 绝对跳转,4G范围
BLX
【X】带状态切换的分支跳转
b 无条件跳转,不考虑回来的问题,不会根据LR的值进行返回
bl 带链接的无条件跳转; 在跳转时会把下一条指令的地址装载到lr寄存器中,以方便cpu最终能回来
bx 带状态切换的无条件跳转
blx 带链接和状态切换的无条件跳转
b loc_地址
bne, beq
注1:bl指令的偏移量不是相对于正在执行的那条指令,而是相对于预取指令-三级流水线
注2:bl命令,最大寻址空间为±32M,访问其他内存通过ldr指令
注3:进入子函数,通过栈保存返回地址+通用寄存器的值
b.w # .w的意思是告诉编译器,这条指令采用32bit编码
bne.n
ARM base instruction -- b bl bx blx相关推荐
- ARM汇编指令(B/BL/BX)
跳转指令用于实现程序流程的跳转,在 ARM 程序中有两种方法可以实现程序流程的跳转: (1) 使用专门的跳转指令. (2) 直接向程序计数器 PC 写入跳转地址值. 通过向程序计数器 PC 写入跳转地 ...
- ARM base instruction -- 简单三级流水线
/* * 简单三级流水线 */ IF Instruction fetch 取指 ...
- ARM base instruction -- ldm
/* * ldm * * 批量访问内存,内存中批量读取数据到寄存器 */ LDM|STM {type} 基址寄存器{!}, 寄存器列表{^} ldm{cond} {!} < regist ...
- ARM base instruction -- cmn
/* * CMN : 比较取负的值 */ (Compare Negative) CMN{条件}{P} <op 1>, <op 2> ...
- ARM base instruction -- mul
/* * MUL : 乘法 */ (Multiplication) MUL{条件}{S} <dest>, <op 1>, <op 2> ...
- ARM base instruction -- swp swpb
/* * 存储器和寄存器数据交换:SWP,SWPB */ swp r0, r1, [r2] // 将 r2 所指向的存储器中的字数据传送到 r0, 同时将 r1 中的字数据 ...
- ARM base instruction -- mla
/* * MLA : 带累加的乘法 */ (Multiplication with Accumulate) MLA{条件}{S} <dest>, <op ...
- ARM base instruction -- eor
/* * EOR : 逻辑异或 */ (logical Exclusive OR) EOR{条件}{S} <dest>, <op 1>, <op 2> ...
- 全新ARM base PocketPC 2003 Emulator Beta 已登場。
(華) 作日一直在忙于debug一個用.NET CF v1.0编写的访问XML Web Service程序:看來挺简单...但就頭頭碰到难题了...后來才发觉问题不是在于我的程序,而是.NET CF ...
最新文章
- 解决mysql“Access denied for user‘root‘@‘IP地址‘“问题
- How research looks?
- 从决策树学习谈到贝叶斯分类算法
- ubuntu双系统导致进windows花屏
- html 怎么让tr的css覆盖td的_通达OA上传漏洞之变量覆盖分析
- 关于git push报403的问题
- 如何提高NLP模型鲁棒性和泛化能力?对抗训练论文串讲
- Win64下通过JNI(C++)创建jvm
- oracle数据导出工具sqluldr2安装及使用
- mysql基础01 创建表 修改表
- 小米便签类间关系图绘制方法
- 台式计算机硬件组装步骤,【电脑组装教程】DIY台式电脑新手组装+安装系统多图全教程...
- 最新县及县以上行政区划代码(截止2014年10月31日)
- 360抢票 网站维护中 你的登录被踢了!
- 2020年中式烹调师(高级)考试试卷及中式烹调师(高级)模拟考试题
- 腾讯云Ubuntu18.04萌新摸索(一)搜狗输入法
- 【小程序开发之准备工作】如何开通云开发和CMS内容管理平台
- 常见格式浏览器在线预览
- 腾讯、移动持续大手笔回购,港股龙头“带动”市场反弹?
- 机器学习2 分类与逻辑回归
热门文章
- Microsoft SQL Server--导入excel数据
- (转)把人类送上月球的女程序员:她的代码跟登月本身一般浪漫...
- win10 桌面图标变白方块
- Linux 服务器上有挖矿病毒 kdevtmpfsi 处理办法
- timestamp(时间戳)
- 怎么写单元测试android,Android上的单元测试
- LIMS实验室信息管理系统、LIMS系统、样本中心、样本库、报告中心、探针、试剂盒、fish检测、药物管理、基因检测、容器管理、病理诊断、核酸质检、血浆分离、核酸提取、混样处理、文库质检、Axure
- 为什么公司愿意录取3年经验的程序员而不是经验5年的自己?
- 10招教你建立好团队
- 数据降维1:主成分分析法思想及原理(配图版)