我正在使用easy68k編寫程序集,如果測試位等於零,我正在尋找一種方法來創建分支[SR中的Z = 0]。大會摩托羅拉68k,如果測試位是零如何分支?
我搜索了很多,但沒有得到答案,
例如,我有這樣一行:
BTST #0,D2 ;Testing the LSB bit in data register 0
現在我想辦法,或者如果存在,一個指令檢查Z在SR中,所以我可以知道被測位是否爲零。
我正在使用easy68k編寫程序集,如果測試位等於零,我正在尋找一種方法來創建分支[SR中的Z = 0]。大會摩托羅拉68k,如果測試位是零如何分支?
我搜索了很多,但沒有得到答案,
例如,我有這樣一行:
BTST #0,D2 ;Testing the LSB bit in data register 0
現在我想辦法,或者如果存在,一個指令檢查Z在SR中,所以我可以知道被測位是否爲零。
分公司在Z標誌:
btst #0,d2
beq bitIsCleared
; or
bne bitIsSet
Z標誌註冊:
btst #0,d2
sne d0
; d0 (byte only) will now be 0xFF if bit was set, 0x00 otherwise)
; if a word is required add ext.w d0
; if a long is required add also ext.l d0
@Damien_The_Unbeliever,我之前看到的,但那些使用Z是BEQ,BNE似乎沒有用,因爲我看到它們是用於比較的,這裏沒有做的比較,我沒有比較兩個值。 是否沒有任何指令將單個定義位移動到數據寄存器? –
@Damien_The_Unbeliever 所以我可以使用沒有操作數的指令'BEQ',它會根據'Z'值分支嗎? 或者我應該把任何操作數不使用它們?但是這樣做會重新影響「Z」值,對吧? –