ARM汇编 beq和bne
来源:互联网 发布:江南大学网络远程教育 编辑:程序博客网 时间:2024/06/05 19:06
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
- ARM汇编 beq和bne
- ARM汇编 beq和bne
- arm汇编指令bne、beq和tst
- ARM汇编指令——TST和BNE、BEQ解析
- arm汇编之 bne与beq
- ARM汇编 beq和bne %BXX前XXb, %FXX后XXf
- BNE 与 BEQ
- tst、cmp、bne、beq指令
- tst、cmp、bne、beq指令
- 汇编 bne 1b和bne 1f浅析
- 汇编bne的问题
- 按位 BEQ(相等跳转) bne(不相等跳转) 手札
- arm汇编和neon汇编
- C 和 ARM 汇编
- 汇编 bne 1b 的问题
- arm汇编语言中bne 1b
- How to parse / read JSON data into a Android ListView
- 获取封装在session的对象
- RandomAccessFile
- <转>java jsp JXL调用模版导出Excel
- Cocos2D实现Fruit Ninja里面刀光效果教程
- ARM汇编 beq和bne
- struts2配置web的action中的<url-pattern>
- Android_使用SoundPool播放音乐
- 指针基础知识
- 20120417_升级日志_改用6.5.1.1 Upgrade Utilities升级_YorN column COMPANIES.CO10 contains invalid values
- Android模拟器快捷键
- 轻松学习C#开发CMPP2.0协议网关-1
- H.264中的NAL单元类型
- iphone之UIApplication