以Smart200为例。
如果把指令系统分为无条件执行指令和有条件执行指令的话,R和S指令一般被 归类到 有条件执行指令中。
本人认为,R和S指令有条件执行是相对的,其中隐含了无条件的执行属性。
R指令一般的功能,解释为(定义):当条件成立时,把目标位变量清0;
S指令一般的功能,解释为(定义):当条件成立时,把目标位变量置1;
根据上述的功能定义,R指令的行为,以下的两段程序等效:
设条件为M0.0,目标位变量为M0.1
程序1:
LD M0.0
R M0.1, 1
程序2:
LDN M0.0 // 无条件指令
A M0.1 // 无条件指令
= M0.1 // 无条件指令
三个无条件指令的组合,完成了R指令的等效功能。
同样,S指令也可以用三条无条件指令等效模拟:
程序3:
LD M0.0
S M0.1, 1
等效为:
程序4:
LD M0.0
O M0.1
= M0.1