我在編寫Assembly時沒有經驗,所以我有這個相當容易回答的問題。在ARM程序集中跳過指令
有了這個簡單的循環:
mov r0,#3
loop:
do some instructions
...
last-instruction
subs r0,r0,#1
bne loop
afterloop:
如果我沒有理解好了,這個循環應該減少3至0並停止(糾正我,如果我錯了)。
但是,在上一次迭代中,當r0 == 0時,我想跳過last-instruction
並退出循環。如果r0等於0,我認爲必須有一些cmp
,然後跳轉到afterloop
。但我想可能有一些更簡單的方法來實現這一點。
編輯: 還有一個問題 - 如果有更多的指令要跳過?
在C它是這樣的:
int i = 3;
while (1) {
foo();
if (i == 0) break;
skipped_func();
--i;
}
請使用僞代碼重新編寫您的問題或代碼,該代碼非常清楚您想要在循環中執行什麼操作 – 2013-03-18 21:24:11