首页 理论教育 算术运算指令的实现与应用

算术运算指令的实现与应用

时间:2023-06-30 理论教育 版权反馈
【摘要】:FS-0iD的PMC运算指令包括十进制四则运算、二进制四则运算和移位运算三类。图3-42 十进制四则运算指令的编程格式指令控制条件BYT用来定义数据格式(字长),BYT=0为2位十进制数00~99;BYT=1为4位十进制数0000~9999。WRT为指令执行错误输出。

算术运算指令的实现与应用

FS-0iD的PMC运算指令包括十进制四则运算二进制四则运算和移位运算三类。

1.十进制四则运算

十进制四则运算指令可以用于2位或4位十进制数(BCD码)的加(ADD)、减(SUB)、乘(MUL)、除(DIV)运算,四则运算指令除了指令代码和SUB号不同外,其指令格式、控制条件、参数等内容均相同。指令的编程格式如图3-42所示。

978-7-111-48905-4-Chapter03-61.jpg

图3-42 十进制四则运算指令的编程格式

指令控制条件BYT用来定义数据格式(字长),BYT=0为2位十进制数00~99;BYT=1为4位十进制数0000~9999。

控制条件RST为复位输入,RST=1时可将错误输出WRT复位;ACT为指令执行启动信号,ACT=1时执行四则运算。

WRT为指令执行错误输出。

2.二进制四则运算

二进制四则运算指令可用于1字节、2字节、4字节二进制数的加(ADDB)、减(SUBB)、乘(MULB)、除(DIVB)运算,四则运算指令除了指令代码和SUB号外,其格式、控制条件、参数等均一致,指令编程格式如图3-43所示。

指令控制条件中的RST为复位输入,RST=1时可将错误输出WRT复位;ACT为指令执行启动信号,ACT=1时执行运算。

四则运算的状态还可通过特殊内部继电器R9000~R9005检查,R9000.0=1代表结果为“0”;R9000.1=1代表结果为负;执行除法运算时,指令中的结果存储器用来存储商,除法的余数保存在内部特殊继电器R9002~R9005中。

3.移位指令(www.xing528.com)

二进制移位指令SFT相当于二进制数的乘2或除2运算,移位指令可将指定存储器中的内容左移或右移1位,指令的编程格式如图3-44所示。指令的控制条件中的RST为复位输入,RST=1时可将结果输出WRT复位;ACT为移位启动信号,应使用边沿信号,ACT的上升沿启动移位操作。控制条件DIR、CONT的作用如下。

978-7-111-48905-4-Chapter03-62.jpg

图3-43 二进制四则运算指令的编程格式

978-7-111-48905-4-Chapter03-63.jpg

图3-44 SFT指令的编程格式

DIR:移位方向定义。DIR=0为左移;DIR=1为右移。

CONT:移位方式定义。CONT=0为正常移位,CONT=1为保留1的移位方式,两者区别如下。

正常移位的动作如图3-45所示。移位时所有数据可依次向左或向右移1位;被移出的位输出到结果继电器中;被移走的位补0。例如,数据1100001101011010左移1位后的状态为1000011010110100,结果继电器上的状态输出为“1”;右移1位后的状态为0110 000110101101,结果继电器中的状态输出“0”。

978-7-111-48905-4-Chapter03-64.jpg

图3-45 CONT=0时的正常移位

保留1的移位方式,同样可以将所有数据向左或向右移1位,但原来的“1”状态被保留;数据被移走的位补“0”;被移出的位输出到结果继电器中。例如,对于数据11000011 01011010左移1位后的状态为1100011111111110,结果继电器中输出“1”;右移1位后的状态为1110001111111111,结果继电器中输出“0”。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈