请教关于arm的bne和beq 迷惑啊

greatriver007 2011-06-23 09:06:13
以下是网上寻找的:

TST R0, #0X8
BNE SuspendUp ; BNE指令是“不相等(或不为0)跳转指令”:
LDR R1,#0x00000000

先进行and运算,如果R0的第四位不为1,则结果为零,则设置zero=1(继续下面的LDR指令);
否则,zero=0(跳到SuspendUp处执行)

我很迷惑 当R0=0x02的时候 R0和0x08不相等 那不相等,结果为零,接下来应该是执行BNE SuspendUP这个语句才对啊,为什么物品的了解和上面网上的找到的结果相反呢? 而且网上关于这个bne和beq 几乎都是一样的答案?难道是我理解错了?请教各位大侠。。。。。
...全文
1556 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
orchisan 2012-03-01
  • 打赏
  • 举报
回复
当前运算结果为1,则Z=0
当前运算结果为0,则Z=1

bne: 标志寄存器中Z标志位不等于零时, 跳转到BNE后标签处
beq: 标志寄存器中Z标志位等于零时, 跳转到BEQ后标签处
greatriver007 2011-06-27
  • 打赏
  • 举报
回复
好的,谢谢你的回复,现在明白了这个句话:“它的NE只是按照标志位的状态,而不是前面指令的寄存器和常数是否相等。” ,之前我一直是认为bne 是不相等 哈哈
Great_Bug 2011-06-24
  • 打赏
  • 举报
回复
不相等,AND结果是0,Z=1,BNE条件不满足,不跳转。。。。
它的NE只是按照标志位的状态,而不是前面指令的寄存器和常数是否相等。
Great_Bug 2011-06-24
  • 打赏
  • 举报
回复
写段程序去试试不就都明白了。。。。。
greatriver007 2011-06-23
  • 打赏
  • 举报
回复
怎么没有人回答啊,救命啊
greatriver007 2011-06-23
  • 打赏
  • 举报
回复
位测试
schlafenhamster 2011-06-23
  • 打赏
  • 举报
回复
TST R0, #0X8;是字节测试,还是位测试?
greatriver007 2011-06-23
  • 打赏
  • 举报
回复

27,517

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧