最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

西门子S7300 CPU寄存器状态字的用法分析

IT圈 admin 18浏览 0评论

2024年5月24日发(作者:阳景胜)

西门子S7300 CPU寄存器状态字的用法分析

1.引言

CPU寄存器状态字的各位给出了有关指令状态或结果的信息以及所出现的错误,我们

可以将二进制逻辑操作状态位信号状态直接集成到程序中,以控制程序执行的流程。

2.状态字寄存器

先简单介绍一下CPU中状态字。

● 首次检查位:状态字的0位称作首次检查位,如果/FC 位的信号状态为“0”,则表

示伴随着下一条逻辑指令,程序中将开始一个新的逻辑串。FC前面的斜杠表示对FC取反。

● 逻辑运算结果:状态字的第1位为RLO 位(RLO= “逻辑运算结果”),在二进制

逻辑运算中用作暂时存储位。比如,一串逻辑指令中的某个指令检查触点的信号状态,并

根据布尔逻辑运算规则将检查的结果(状态位)与RLO位进行逻辑门运算,然后逻辑运算

结果又存在RLO位中。

● 状态位:状态位(第2位)用以保存被寻址位的值。状态位总是向扫描指令(A,A

N,O,…)或写指令(=,S,R,)显示寻址位的状态(对于写指令,保存的寻址位状态是本条写

指令执行后的该寻址位的状态)。

● OR位:在用指令OR执行或逻辑操作之前,执行与逻辑操作的时候,就需要用到

OR这一状态位。OR位表示先前执行的与逻辑操作产生的值为“1”,于是,逻辑操作或的

执行结果就已被确定为“1”。

● OV位:溢出表示算术或比较指令执行时出现了错误。根据所执行的算术或逻辑指

令结果对该位进行设置。

● OS位:溢出存储位是与OV位一起被置位的,而且在更新算术指令之后,它能够

保持这种状态,也就是说,它的状态不会由于下一个算术指令的结果而改变。 这样,即使

是在程序的后面部分,也还有机会判断数字区域是否溢出或者指令是否含有无效实数。OS

位只有通过如下这些命令进行复位:JOS(若OS = 1,则跳转)命令,块调用和块结束

命令。

● CC1及CC0位:CC1和CC0(条件代码)位给出有关下列结果的相关信息:

• 算术指令结果

• 比较指令结果

• 字逻辑指令

• 在移位功能中,移出位相关信息。

可以用以下指令来检查条件代码CC1和CC0。

CC1 CC0 检查完成后,如果:

2024年5月24日发(作者:阳景胜)

西门子S7300 CPU寄存器状态字的用法分析

1.引言

CPU寄存器状态字的各位给出了有关指令状态或结果的信息以及所出现的错误,我们

可以将二进制逻辑操作状态位信号状态直接集成到程序中,以控制程序执行的流程。

2.状态字寄存器

先简单介绍一下CPU中状态字。

● 首次检查位:状态字的0位称作首次检查位,如果/FC 位的信号状态为“0”,则表

示伴随着下一条逻辑指令,程序中将开始一个新的逻辑串。FC前面的斜杠表示对FC取反。

● 逻辑运算结果:状态字的第1位为RLO 位(RLO= “逻辑运算结果”),在二进制

逻辑运算中用作暂时存储位。比如,一串逻辑指令中的某个指令检查触点的信号状态,并

根据布尔逻辑运算规则将检查的结果(状态位)与RLO位进行逻辑门运算,然后逻辑运算

结果又存在RLO位中。

● 状态位:状态位(第2位)用以保存被寻址位的值。状态位总是向扫描指令(A,A

N,O,…)或写指令(=,S,R,)显示寻址位的状态(对于写指令,保存的寻址位状态是本条写

指令执行后的该寻址位的状态)。

● OR位:在用指令OR执行或逻辑操作之前,执行与逻辑操作的时候,就需要用到

OR这一状态位。OR位表示先前执行的与逻辑操作产生的值为“1”,于是,逻辑操作或的

执行结果就已被确定为“1”。

● OV位:溢出表示算术或比较指令执行时出现了错误。根据所执行的算术或逻辑指

令结果对该位进行设置。

● OS位:溢出存储位是与OV位一起被置位的,而且在更新算术指令之后,它能够

保持这种状态,也就是说,它的状态不会由于下一个算术指令的结果而改变。 这样,即使

是在程序的后面部分,也还有机会判断数字区域是否溢出或者指令是否含有无效实数。OS

位只有通过如下这些命令进行复位:JOS(若OS = 1,则跳转)命令,块调用和块结束

命令。

● CC1及CC0位:CC1和CC0(条件代码)位给出有关下列结果的相关信息:

• 算术指令结果

• 比较指令结果

• 字逻辑指令

• 在移位功能中,移出位相关信息。

可以用以下指令来检查条件代码CC1和CC0。

CC1 CC0 检查完成后,如果:

发布评论

评论列表 (0)

  1. 暂无评论