历史上的今天
今天是:2024年09月23日(星期一)
2019年09月23日 | ARM汇编:BNE和TST和BEQ
2019-09-23 来源:eefocus
(1)例一:TST与BNE搭配
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)例二:CMP同BNE搭配
CMP r1,r2
BNE copy_loop
这个CMP搭配下边的BNE指令构成了如果r1≠r2则执行BNE指令,跳转到copy_loop函数处执行。否则,就跳过下边,bne指令向下执行。
(3)例三:CMP同BEQ搭配
CMP r0,r1
BEQ clean_bss
如果r0=r1,就执行BEQ,跳转到clean_bss函数处执行,否则跳过BEQ向下执行。
总结:其实上边两句都是跳转指令,跳转到相关函数处执行。区别在于执行跳转的条件不同。
上一篇:各种ARM仿真器接口图
史海拾趣
|
在eboot加载NK的时候用到了这个函数: #define IMAGE_WINCE_CODE_PA 0x80001000 #define IMAGE_WINCE_CODE_SIZE & ...… 查看全部问答> |
|
新手求助如何搭建VS 2005开发wince的环境!在线等!!!!! 本人初次做Win ce的开发,IDE用的是VS 2005,所建项目类型是在智能设备中的Windows ce 5.0模板用的是设备应用程序,但是在调试时在弹出的“选择应用程序的部部署位置”时我选 了Windows CE Device时出现了\"连接到设备失败。 &nbs ...… 查看全部问答> |
|
华为内部推荐 招聘对象: 04,05年本科及硕士,06年硕士生,07年的应届生不招, 学校要求省重点大学及以上,通信、电子、计算机、经济类、管理类等相关专业毕业。 招聘的是正式“华为员工”,待遇一般不低于07年的 ...… 查看全部问答> |
|
各位好 初用TI的产品,用的hawkboard板,但是现在遇到点问题,就是用ubuntu串口烧录工具烧录uboot的问题 看论坛说下载的工具需要更改将mddr改成ddr2的模式,但是我不知道源码上需要如何更改 麻烦各位用过hawkboard的告诉一下, 谢谢 祝您工作 ...… 查看全部问答> |
|
恩智浦推出比常规SIM具有更高安全性和性能的新一代SWP-SIM安全元件 本帖最后由 jameswangsynnex 于 2015-3-3 20:03 编辑 SmartMX2平台可提供智能卡级的高性能、安全性及闪存,将改变传统SIM及安全元件市场格局 恩智浦半导体(NXP Semiconductors N.V.)(纳斯达克:NXPI)近日宣布推出一款革命性多尺寸并采 ...… 查看全部问答> |
|
诡异啊,论坛送的4Gu盘,今天下午突然变成了1.4MB了,求解啊?? 本帖最后由 jameswangsynnex 于 2015-3-3 20:02 编辑 今天下午插上电脑时,还有4个G呢,发了个文件进去,就变1。4MB了,怎么回事,里面的东西全没有了 悲催啊 … 查看全部问答> |
|
先不讲理论,举个例子: 一个液晶驱动Lcd.c文件中有函数WriteChar(char n),WriteString(char *str);为便于查找函数,通常需要加前缀Lcd_等。在这里提供一种结构体加函数指针的做法: ...… 查看全部问答> |




