私はアセンブリを書く経験がまったくないので、この質問に答えるのはかなり簡単だと思います。
この単純なループを持つ:
mov r0,#3
loop:
do some instructions
...
last-instruction
subs r0,r0,#1
bne loop
afterloop:
よく理解できれば、このループは 3 から 0 に減って停止するはずです (間違っていたら訂正してください)。
last-instruction
ただし、最後の反復で r0 == 0 をスキップしてループから抜けたいと思います。cmp
r0 が 0 に等しい場合は、いくつかあるはずだと思いafterloop
ます。しかし、これを達成するためのより簡単な方法があるかもしれないと思います。
編集: もう 1 つの質問 - スキップする指示がさらにある場合はどうすればよいですか?
C では次のようになります。
int i = 3;
while (1) {
foo();
if (i == 0) break;
skipped_func();
--i;
}