注意:本文经过原作者授权转译,转载请标明出处
原文地址:http://mrjester.hapisan.com/04_MC68/Sect07Part03/Index.html
条件允许建议阅读原文,网上非中文资料还是较多,当作锻炼英文岂不美哉
翻译若有不足之处欢迎批评指正
译文:
"和平不代表着没有冲突。因为对立,分化和冲突是自然的规律" (对立统一规律 (雾) ---- 布莱恩特 麦吉尔 (Bryant McGill)
简介
这四个S**指令会根据有符号的运算结果设置或是擦除目标操作数,有点类似BGE, BGT, BLE 和 BLT指令
SGE 指令
SGE (Set on Greater than or Equal) - 大于等于 (≥) 时设置为1
这条指令会去检查N (负结果) 和 V (溢出) 两个状态标志,如果它们同时是1或者同时是0,那么目的操作数会被置为1 (%11111111),否则,目的操作数会被置0 (%00000000)
例子
这条指令通过N和V两个状态标志一起来检测计算结果是不是大于等于 (≥):
cmpi.w #$0020, d0
sge.b d1
我们假定d0的内容是00009800,CMP指令使用的长度是字,所以会在0020与9800之间比较
9800并不大于等于0020,V会被擦除成0,而N会被设置为1,所以SGE指令会把d1的内容修改为 00000000
如果我们假设d0的内容是00000492,CMP指令使用的长度是字,所以会在0020与0492之间比较
0492大于0020,所以V和N都会被擦除成0,SGE指令会把d1的内容修改为 000000FF
SGT 指令
SGT (Set on Greater Than) - 大于 (>) 时设置为1
如果下面的条件中任何一个满足的话,目的操作数会被置为1 (%11111111),否则,目的操作数会被置0 (%00000000):
Z,N和V的内容全都是0Z的内容是0并且N和V的内容都是1
例子
这条指令通过Z,N和V三个状态标志一起来检测计算结果是不是大于 (>):
cmpi.w #$0020, d0
sgt.b d1
我们假定d0的内容是00000020,CMP指令使用的长度是字,所以会在0020与0020之间比较
0020等于0020,所以Z会被设置为1,SGT指令会把d1的内容修改为 00000000
如果我们假设d0的内容是00000492,CMP指令使用的长度是字,所以会在0020与0492之间比较
0492大于0020,Z,V和N都会被擦除为0,SGT指令会把d1的内容修改为 000000FF
SLE 指令
SLE (Set on Less than or Equal) - 小于等于 (≤) 时设置为1
如果下面的条件中任何一个满足的话,目的操作数会被置为1 (%11111111),否则,目的操作数会被置0 (%00000000):
Z的内容是0N的内容是0并且V的内容是1N的内容是1并且V的内容是0
例子
这条指令和SGE恰恰相反:
cmpi.w #$0020, d0
sle.b d1
我们假定d0的内容是00009800,CMP指令使用的长度是字,所以会在0020与9800之间比较
9800小于0020,V会被擦除成0而N会被设置为1,SLE指令会把d1的内容修改为 000000FF
如果我们假设d0的内容是00000492,CMP指令使用的长度是字,所以会在0020与0492之间比较
0492并不小于等于0020,V和N都会被擦除为0,SLE指令会把d1的内容修改为 00000000
SLT 指令
SLT (Set on Less Than) - 小于 (<) 时设置为1
如果下面的条件中任何一个满足的话,目的操作数会被置为1 (%11111111),否则,目的操作数会被置0 (%00000000):
N的内容是0并且V的内容是1N的内容是1并且V的内容是0
例子
这条指令和SGT恰恰相反:
cmpi.w #$0020, d0
slt.b d1
我们假定d0的内容是00000020,CMP指令使用的长度是字,所以会在0020与0020之间比较
0020等于0020,V和N都会被擦除为0,SLT指令会把d1的内容修改为 00000000
如果我们假设d0的内容是00008492,CMP指令使用的长度是字,所以会在0020与8492之间比较
8492小于0020,8492-0020=8472,V会被设置为0,N会被设置为1,SLT指令会把d1的内容修改为 000000FF
目录
上一篇:[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 柒 - 条件指令及其他 | 2. SVC, SVS, ST & SF 指令
下一篇:[转译][马基 杰斯特(MarkeyJester) 摩托罗拉68000 入门教程] 柒 - 条件指令及其他 | 4. 无符号比较设置 (SCC, SHI, SLS, SCS)