首页 理论教育 功能指令通则:表示形式、数据长度及执行形式介绍

功能指令通则:表示形式、数据长度及执行形式介绍

时间:2023-07-02 理论教育 版权反馈
【摘要】:(一)功能指令的表示形式下面以求平均值指令介绍功能指令的表示形式,其指令格式如下:功能指令按功能号FNC00~FNC99编排。某些指令只需指定功能号即可,但大多数还需指定操作数。功能指令的功能号和助记符占一个程序步。(二)数据长度及指令的执行形式1.16位和32位功能指令可处理16位数据和32位数据。

功能指令通则:表示形式、数据长度及执行形式介绍

(一)功能指令的表示形式

下面以求平均值指令介绍功能指令的表示形式,其指令格式如下:

功能指令按功能号FNC00~FNC99编排。每条功能指令都有一个助记符。例如上面的FNC45指令,其功能号为45,助记符为MEAN。某些指令只需指定功能号即可,但大多数还需指定操作数。关于操作数的说明如下:

[S]是源操作数。若使用变址功能时,表示为[S·]。有时源操作数不止一个,就用[S1·]、[S2·]表示。

[D]是目标操作数,其余同[S]。

m、n表示其它操作数。常用来表示常数或者作为源操作数和目标操作数的补充说明。表示常数时,可以为十进制K或十六进制H。需要注释的项目较多时,可以采用m1、m2等方式。

功能指令的功能号和助记符占一个程序步。操作数占2或4个程序步,16位指令是2步,32位指令是4步。

例如,下面一条求平均值指令,源操作数为D10~D12(n=3),目标操作数为D20,指令的操作为(D10+D11+D12)/3—→D20。

注意:某些指令在整个程序中只能出现一次。即使使用跳转使其分别处于两段不可能同时执行的程序中也不允许,但可利用变址寄存器多次改变其操作数。

(二)数据长度及指令的执行形式

1.16位和32位

功能指令可处理16位数据和32位数据。指令中的符号(D)表示处理32位数据,如(D)MOV、FNC(D)12、FNC12(D)等。处理32位数据时,使用元件号相邻的两个元件组成元件对。元件对的首元件号用奇数、偶数均可。建议首元件的编号统一使用偶数。

32位计数器C200~C255不能用作16位指令的操作数。

2.连续执行/脉冲执行(www.xing528.com)

连续执行方式:当X0为ON时,指令在每个扫描周期都会被重复执行。某些指令如加法、减法、乘法、除法、加1、减1、交换、移位等,使用连续执行方式时要特别注意。

脉冲执行方式(助记符后附有(P)符号):只有当X10由OFF变为ON时,指令才会被执行。在不需要每个扫描周期都执行时,应采用此种方式,且可缩短程序处理时间。

符号(D)和(P)可同时使用,如(D)MOV(P),表示以脉冲执行方式处理32位数据。

3.位元件

只处理ON/OFF状态的元件称为位元件,如X、Y、M、S。其它处理数据的元件称为字元件,如T、C、D。

位元件组合起来也可处理数字数据。每4位为一组组合成单元,用Kn+首位元件号来表示,n表示组数(单元数)。16位数据操作时为K1~K4,32位数据操作时为K1~K8。例如,K4M0表示由M0~M15组成的16位数据,K8M20表示由M20~M51组成的32位数据,K2X0表示由X0~X7组成的8位数据,首位元件号为最低位。为避免混乱,建议用元件号以0结尾的元件作为首元件,如X0、Y10、M0等。

当进行16位数据传送时,若目标操作数仅是K1M0、K2M0或K3M0(不足16位)时,只传送相应的低位数据,较高位的数据不传送;若源操作数仅由K1、K2或K3指定,不足的高位数据均作0处理,这意味着只能处理正数(符号位为0)。

32位数据传送也一样。

4.变址寄存器V、Z

变址寄存器用于在传送、比较指令中修改操作对象的元件号,其操作方式与普通寄存器一样。本书操作数符号[S·]和[D·]中的·表示可以加入变址寄存器。对32位指令,V、Z自动组对,V作高16位,Z作低16位,在指令中只需指定Z。

例如:

当M10为ON时(V)=10;当M11为ON时(Z)=20;当M12为ON时执行ADD指令,(D5V)+(D15Z)→(D40Z),即(D15)+(D35)→(D60)。V、Z的内容不变。

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

我要反馈