注意:本文經過原作者授權轉譯,轉載請標明出處
原文地址:http://mrjester.hapisan.com/04_MC68/Sect06Part06/Index.html
條件允許建議閱讀原文,網上非中文資料還是較多,當作鍛煉英文豈不美哉
翻譯若有不足之處歡迎批評指正
譯文:
"誠信是美德的一部分也是社會中極為重要的一部分" ---- 托馬斯 傑斐遜 (Thomas Jefferson, 1743-1826),美國第三任總統
簡介
這些分支指令會在某個數值大於或是小於一個特定的值的時候去分支跳轉。它們只和有符號數打交道,也就是說如果使用的是字節長度的話,80是最小值,而7F是最大值
所以如果我們比較FE和02的話,FE會被認為比02要小
BGE 指令
BGE (Branch on Greater than or Equal) - 大於等於 (≥) 時分支
如果下面的條件中任何一個滿足的話,目的操作數會被加到PC里,然后 m68k 會在PC里的新的地址處繼續執行:
N和V狀態標志內容都是0N和V狀態標志內容都是1
否則的話,這條指令會被忽略
例子
這條指令通過N和V兩個狀態標志一起來檢測計算結果是不是大於等於 (≥):
cmpi.w #$0020, d0
bge.s Is20orHigher
move.w #$0000, d0
Is20orHigher:
我們假定d0的內容是00009800,CMP指令使用的長度是字,所以會在0020與9800之間比較
9800並不大於等於0020,所以指令會被忽略
如果我們假設d0的內容是00000492,CMP指令使用的長度是字,所以會在0020與0492之間比較
0492大於0020,所以 m68k 會跳轉到Is20orHigher處繼續執行
BGT 指令
BGT (Branch on Greater Than) - 大於 (>) 時分支
如果下面的條件中任何一個滿足的話,目的操作數會被加到PC里,然后 m68k 會在PC里的新的地址處繼續執行:
Z,N和V的內容全都是0Z的內容是0並且N和V的內容都是1
否則的話,這條指令會被忽略
例子
這條指令通過Z,N和V三個狀態標志一起來檢測計算結果是不是大於 (>):
cmpi.w #$0020, d0
bgt.s IsHigher
move.w #$0000, d0
IsHigher:
我們假定d0的內容是00000020,CMP指令使用的長度是字,所以會在0020與0020之間比較
0020等於0020,所以指令會被忽略
如果我們假設d0的內容是00000492,CMP指令使用的長度是字,所以會在0020與0492之間比較
0492大於0020,所以 m68k 會跳轉到IsHigher處繼續執行
BLE 指令
BLE (Branch on Less than or Equal) - 小於等於 (≤) 時分支
如果下面的條件中任何一個滿足的話,目的操作數會被加到PC里,然后 m68k 會在PC里的新的地址處繼續執行:
Z的內容是0N的內容是0並且V的內容是1N的內容是1並且V的內容是0
否則的話,這條指令會被忽略
例子
這條指令和BGE恰恰相反:
cmpi.w #$0020, d0
ble.s Is20orLower
move.w #$0000, d0
Is20orLower:
我們假定d0的內容是00009800,CMP指令使用的長度是字,所以會在0020與9800之間比較
9800小於0020,所以 m68k 會跳轉到Is20orLower處繼續執行
如果我們假設d0的內容是00000492,CMP指令使用的長度是字,所以會在0020與0492之間比較
0492並不小於等於0020,所以指令會被忽略
BLT 指令
BLT (Branch on Less Than) - 小於 (<) 時分支
如果下面的條件中任何一個滿足的話,目的操作數會被加到PC里,然后 m68k 會在PC里的新的地址處繼續執行:
N的內容是0並且V的內容是1N的內容是1並且V的內容是0
否則的話,這條指令會被忽略
例子
這條指令和BGT恰恰相反:
cmpi.w #$0020, d0
blt.s IsLower
move.w #$0000, d0
IsLower:
我們假定d0的內容是00000020,CMP指令使用的長度是字,所以會在0020與0020之間比較
0020等於0020,所以指令會被忽略
如果我們假設d0的內容是00008492,CMP指令使用的長度是字,所以會在0020與8492之間比較
8492小於0020,所以 m68k 會跳轉到IsLower處繼續執行
目錄
上一篇:[轉譯][馬基 傑斯特(MarkeyJester) 摩托羅拉68000 入門教程] 陸 - 條件分支 | 5. BVC & BVS (溢出條件分支) 指令
下一篇:[轉譯][馬基 傑斯特(MarkeyJester) 摩托羅拉68000 入門教程] 陸 - 條件分支 | 7. 無符號比較分支 (BCC, BHI, BLS, BCS)
