branch指令 汇编 arm

MOVS r0, r0
BNE cont
ADD r3,r4,r5
EOR r2,r1,r4
cont SUB r6, r7, #42

我有两个问题
1. 若r0等于0,则执行cont,那执行完了以后还要不要回来继续执行add eor那些?还是就执行cont以后的指令?
2. 若r0不等于0,执行完add eor后,还要不要执行cont里面的内容?就是所有执行完后,r6里面存的值是不是r7-42?

谢谢!

第1个回答  推荐于2018-04-10
1、执行分支跳转之后能不能再返回,取决于你的分支程序结构,如果你的cont分支程序中放置另一个跳转指令,跳转目标为ADD指令处,那么就能回来执行,否则,就像你示例程序中那样,当然不行;
2、若r0不为0,仅仅是不在ADD前跳转到cont去执行,但是EOR执行完后,紧接着肯定要执行cont段程序,因为cont在这里仅仅是一个标号,是用做程序跳转参考的,如果程序中不使用跳转,这个标号被无视,其后的代码跟普通代码没什么两样。本回答被提问者和网友采纳
相似回答