注意:本文经过原作者授权转译,转载请标明出处
原文地址: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)