ARM汇编 beq和bne
TST R0, #0X8
BNE SuspendUp ;BNE指令是“不相等(或不为0)跳转指令”:
LDR R1,#0x00000000
先进行and运算,如果R0的第四位不为1,则结果为零,则设置zero=1(继续下面的LDR指令);
否则,zero=0(跳到SuspendUp处执行)。
还有:
有点模糊,在此记下。
tst r0,#02
bne sleep
ldr r1,#0
解释:位比较,先进行and运算,如果r0第2位不为1,则与的结果为0,设置标志位zero=1,继续下面的ldr指令。反之,zero=0,跳转到sleep执行。
bne指令: 非零则跳转
个人总结:tst 和bne连用: 先是用tst进行位与运算,然后将位与的结果与0比较,如果不为0,则跳到bne紧跟着的标记(如bne sleep,则跳到sleep处)。
tst 和beq连用: 先是用tst进行位与运算,然后将位与的结果与0比较,如果为0,则跳到beq紧跟着的标记(如bne AAAA,则跳到AAAA处)。
2、
昨天在看arm汇编,其中有这样的一段语句
0 ldr r3, [r0], #4 str r3, [r1], #4 cmp r2, r0 bne %B0 |
bne:不等于则调转
但%B0 ,网上搜了一遍,还是未果。从最后的汇编语言来看,%B 代表,往前搜索 lable为0的行,换句话说,就是指本条语句前,lable为0的地址。整条语句的意思就是,如果不相等则跳转到lable为0的行。
同样,有了bne %B0,也就有了bne %F1,这是向后搜索lable为1的行。参考代码:
; check if EIN0 button is pressed ldr r0,=GPFCON ldr r1,=0x0 str r1,[r0] ldr r0,=GPFUP ldr r1,=0xff str r1,[r0] ldr r1,=GPFDAT ldr r0,[r1] bic r0,r0,#(0x1e<<1) ; bit clear tst r0,#0x1 bne %F1 (省略一些语句) ;Clear SDRAM End 1 ;Initialize stacks bl InitStacks |
ARM汇编 beq和bne相关推荐
- ARM汇编 beq和bne %BXX前XXb, %FXX后XXf
%BXX前XXb, %FXX后XXf 1. 前阵子看cpu从sleep模式唤醒时,对tst bne和tst beq有些模糊.先记录: 摘抄如下: TST R0, #0X8 BNE Sus ...
- arm汇编语言中bne 1b的意思
bne - branch if nemachines: base syntax: bne $soffset8 format: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 ...
- 经常使用ARM汇编指令
一面学习,一面总结,一面记录. 以下是整理在网上找到的一些资料,简单整理记录一下,方便以后查阅. ARM处理器的指令集能够分为跳转指令.数据处理指令.程序状态寄存器(PSR)处理指令.载入/存储指令. ...
- arm汇编解析—qnnpack卷积实现
目录 前言 基础直通车 arm基础知识 arm指令释义 qnn汇编代码解析 前言 最近在移植QNNPACK神经网络加速库,涉及到对卷积arm汇编的修改,这边做个记录,对汇编部分的内容进行注释,顺便学习 ...
- bcs转10 c语言,ARM汇编转C语言 - ARM技术论坛-ARM嵌入式论坛-人气最火爆ARM学习论坛 - 21ic电子技术开发论坛...
本帖最后由 wglzp123456 于 2019-6-15 19:21 编辑 //ARM汇编代码 0894 B570 PUSH {R4-R6,LR} 089 ...
- linux 嵌入式汇编 adc,嵌入式Linux ARM汇编(四)——ARM汇编程序设计
嵌入式Linux ARM汇编(四)--ARM汇编程序设计 汇编程序有顺序.循环.分支.子程序四种结构形式. 一.顺序结构 程序实例: AREA Buf,DATA,READWRITE;定义数据段Buf ...
- ida pro 反汇编 Android so 库后修改 arm 汇编指令的方法总结
1 前言 最近博主在学习Android逆向的时候,参照吾爱破解论坛的<教我兄弟学Android逆向系列课程>学习的时候,学到第8章<教我兄弟学Android逆向08 IDA爆破签名验 ...
- ARM汇编指令以及伪指令
文章目录 ARM寄存器 ARM指令的一般编码格式 ARM指令的条件域 ARM寻址方式 数据处理指令的操作数寻址方式 立即数寻址方式 寄存器寻址方式 寄存器移位寻址方式 字或无符号字节的Load/Sto ...
- linux 汇编 preserve8,ARM汇编伪指令
分类: LINUX 2009-10-21 16:39:09 ARM 汇编程序的由机器指令,伪指令和宏指令组成.伪指令不像机器指令那样在处理器运行期间由机器执行,而是汇编程序对源程序汇编期间由汇编程序处 ...
最新文章
- 怎样找到适合自己的UI设计培训班
- Ext.js Tree
- 【mongoDB实战】mongo对某个键添加索引
- OpenCASCADE:调试工具和提示
- Framework Design Studio 发布了
- 超详细图解!【MySQL进阶篇】SQL优化-索引-存储引擎
- 1-4flink概述
- A Simple Math Problem 矩阵打水题
- java 动态加载jni_JNI静态注册与动态注册详解
- python学习笔记(七):面向对象编程、类
- 西门子smart200 圆弧插补 整合画图程序 2轴3轴
- mac safari java插件_如果提示您信任或更新 Mac 上 Safari 浏览器中的插件
- 文华财经期货K线多周期画线技术,多重短线技术共振通道线指标公式——多周期主图自动画线
- 心灵捕手——走进内心世界
- Google地图查地址、经纬度
- 论文阅读:RGCF: Refined Graph Convolution Collaborative Filering with Concise and Expressive Embedding
- C++ primer Plus(第六版)中文版第九章第3题
- mysql mongo关联查询语句_MySQL与Mongo简单的查询实例代码 筋斗云网络
- 得出一个月有多少工作日
- Vue2到Vue3实战必备技能(一)
热门文章
- Spring框架中bean的生命周期
- 搜索重复代码_通过MappedByteBuffer搜索大文件
- 非常全面的Android Bitmap知识点梳理
- Java中的synchronized与volatile关键字
- windoes硬盘备份(数据迁移)的方法
- java url特殊字符处理_简单实例处理url特殊符号处理(2种方法)
- python处理json数据 乱码报错_python操作mysql中文显示乱码的解决方法
- Docker容器的文件系统管理
- oracle 入参含多个值,oracle几个检查点参数的含义与区别
- js能订阅mq吗_高颜值宠物营养品订阅盒!除了好看,真的能补充营养吗?