說你有一個分支指令,您可以到一些其他的子程序,是有可能再返回到調用子程序,並繼續..事情是這樣的:?AVR彙編:如何從分支指令繼續?
prog:
cp r16,r17
breq true
...
true:
out PORTA,r16
HOW DO I RETURN TO EXECUTE THE REST OF prog?
我希望這能說明問題。
謝謝!
說你有一個分支指令,您可以到一些其他的子程序,是有可能再返回到調用子程序,並繼續..事情是這樣的:?AVR彙編:如何從分支指令繼續?
prog:
cp r16,r17
breq true
...
true:
out PORTA,r16
HOW DO I RETURN TO EXECUTE THE REST OF prog?
我希望這能說明問題。
謝謝!
任一分支回來了無條件的分支(rjmp
),或在true
轉換您的代碼位的子程序和轉換您breq
到brne
跳過去,你後放置rcall true
。
prog:
cp r16,r17
brne false
rcall true
false:
...
...
true:
out PORTA,r16
ret
prog:
cpse r16,r17
rjmp continue
out PORTA,r16
continue:
...
prog:
cp r16,r17
breq true ;branch if equal
brne false ;branch in not equal
Rest of the program
.
.
.
rjmp prog
false:
Do something
.
.
ret
true:
out PORTA,r16
;HOW DO I RETURN TO EXECUTE THE REST OF prog?
;Add a return statement, that will continue where you left
ret
好吧,如果我有多個條件,說「真:假:也許:」我怎麼會跳回到調用程序?謝謝你的幫助! –
這與現有的有何不同? –
......我的意思是,假設它因爲符合條件而分支到假,你將如何從那裏回來? –