利用 STL 编程,手册上首先看到接触的就是寄存器状态字,CPU 寄存器状态字的各位给
出了有关指令状态或结果的信息以及所出现的错误,我们可以将二进制逻辑操作状态位
信号状态直接集成到程序中,以控制程序执行的流程。
当然网上关于这个字的解释已经是很通透了,但是这些文字让我们这些野夫咬的甚是不
爽,其实很简单的几个位,硬是被说的人模人样,浪费时间不说,还伤脑细胞。所以在
这里来一个图文并茂的详解…
BR
CC1 CC0 OV OS OR STA RL0 /FC
8 7 6 5 4 3 2 1 0
上面就是状态字的几个位,分别是第 0 位→第 8 位,其中 9-15 位没有用到。
先来看看官方的文字解释:
●首次检查位:状态字的 0 位称作首次检查位,如果/FC位的信号状态为“0”,则表示伴
随着下一条逻辑指令,程序中将开始一个新的逻辑串。FC 前面的斜杠表示对 FC 取反。˜
●逻辑运算结果:状态字的第 1 位为 RLO位(RLO=“逻辑运算结果”),在二进制逻辑
运算中用作暂时存储位。比如,一串逻辑指令中的某个指令检查触点的信号状态,并根
据布尔逻辑运算规则将检查的结果(状态位)与 RLO 位进行逻辑门运算,然后逻辑运算
结果又存在 RLO 位中。˜
●状态位:状态位(第 2 位)用以保存被寻址位的值。状态位总是向扫描指令(A,AN,O,
…)或写指令(=,S,R,)显示寻址位的状态(对于写指令,保存的寻址位状态是本条写指
令执行后的该寻址位的状态)。˜
●OR 位:在用指令 OR 执行或逻辑操作之前,执行与逻辑操作的时候,就需要用到 OR
这一状态位。OR 位表示先前执行的与逻辑操作产生的值为“1”,于是,逻辑操作或的执
行结果就已被确定为“1”。˜
●OV 位:溢出表示算术或比较指令执行时出现了错误。根据所执行的算术或逻辑指令结
果对该位进行设置。˜
●OS 位:溢出存储位是与 OV 位一起被置位的,而且在更新算术指令之后,它能够保持
这种状态,也就是说,它的状态不会由于下一个算术指令的结果而改变。˜这样,即使是
在程序的后面部分,也还有机会判断数字区域是否溢出或者指令是否含有无效实数。OS
位只有通过如下这些命令进行复位:JOS(若 OS=1,则跳转)命令,块调用和块结束
命令。˜
●CC1 及 CC0 位:CC1 和 CC0(条件代码)位给出有关下列结果的相关信息:˜
•算术指令结果˜
•比较指令结果˜
•字逻辑指令
•在移位功能中,移出位相关信息。˜