首页 理论教育 使用STL实现累加器

使用STL实现累加器

时间:2023-06-29 理论教育 版权反馈
【摘要】:累加器指令用于处理一个或两个累加器的内容。执行该指令时不考虑状态位,也不会影响状态位。如果在移位或循环指令前面直接编程LEAVE指令,并将各累加器组合,则LEAVE指令就可起到数学运算指令的作用。+AR1、+AR2:要加到AR1、AR2的内容中的整数(16位)由ACCU 1-L中的值指定。BLD 程序显示指令(空)指令格式为:BLD〈数字〉〈数字〉指定BLD指令,范围为0~255。在STL中显示梯形图或FBD程序时将自动创建它。该指令代码包含具有16个零的位模式。

使用STL实现累加器

累加器指令用于处理一个或两个累加器的内容。

(1)TAK 将ACCU 1与ACCU 2互换

指令格式为:TAK

TAK(将ACCU 1与ACCU 2互换)将把ACCU 1的内容与ACCU 2的内容交换。执行该指令时不考虑状态位,也不会影响状态位。对具有4个ACCU的CPU,ACCU 3和ACCU 4的内容保持不变。

(2)POP 具有两个ACCU的CPU

指令格式为:POP

POP(具有两个ACCU的CPU)将ACCU 2的全部内容复制到ACCU 1。ACCU 2保持不变。执行该指令时不考虑状态位,也不会影响状态位。

(3)POP 具有4个ACCU的CPU

指令格式为:POP

POP(具有4个ACCU的CPU)将ACCU 2的全部内容复制到ACCU 1,将ACCU 3的内容复制到ACCU 2,并将ACCU 4的内容复制到ACCU 3。ACCU 4保持不变。执行该指令时不考虑状态位,也不会影响状态位。

(4)PUSH 具有两个ACCU的CPU

指令格式为:PUSH

PUSH(ACCU 1到ACCU 2)将ACCU 1的整个内容复制到ACCU 2。ACCU 1保持不变。执行该指令时不考虑状态位,也不会影响状态位。

(5)PUSH 具有4个ACCU的CPU

指令格式为:PUSH

PUSH(具有4个ACCU的CPU)将ACCU 3的内容复制到ACCU 4,将ACCU 2的内容复制到ACCU 3,并将ACCU 1的内容复制到ACCU 2。ACCU 1保持不变。执行该指令时不考虑状态位,也不会影响状态位。

制到ACCU 3,并将ACCU 3的内容复制到ACCU 4

目录 ACCU 1 ACCU 2 ACCU 3 ACCU 4

执行PUSH指令之前 值A 值B 值C 值D

执行PUSH指令之后 值A 值A 值B 值C

(6)ENT 进入ACCU堆栈和LEAVE 离开ACCU堆栈(www.xing528.com)

指令格式为:ENT LEAVE

ENT(进入累加器堆栈)将把ACCU 3的内容复制到ACCU 4,并将ACCU 2的内容复制到ACCU 3。如果在装载指令前面直接编程ENT指令,则可将中间结果保存到ACCU 3中。

LEAVE(离开累加器堆栈)将ACCU 3的内容复制到ACCU 2,并将ACCU 4的内容复制到ACCU 3。如果在移位或循环指令前面直接编程LEAVE指令,并将各累加器组合,则LEAVE指令就可起到数学运算指令的作用。ACCU 1的内容和ACCU 4的内容保持不变。

(7)INC 增加ACCU 1-L-L和DEC 减少ACCU 1-L-L

指令格式为:INC〈8位整数〉 DEC〈8位整数〉

ACCU 1-L-L加常数(减常数),8位整数常数的范围为0~255。

INC〈8位整数〉(增加ACCU 1-L-L)将ACCU 1-L-L的内容加上8位整数,DEC〈8位整数〉(减少ACCU 1-L-L)从ACCU 1-L-L的内容中减去8位整数,并将结果均存储在ACCU 1-L-L中。ACCU 1-L-H、ACCU 1-H和ACCU 2保持不变。执行该指令时不考虑状态位,也不会影响状态位。

该指令不适合16位或32位数学运算,因为从累加器1的低字的低字节到累加器1的低字的高字节不会产生进位。对于16位或32位数学运算,要使用+I或+D指令。

(8)+AR1 将ACCU 1加到地址寄存器1和+AR2 将ACCU 1加到地址寄存器2

参数〈P#Byte.Bit〉(被加到AR1或AR2上的地址)的数据类型为指针常数。

+AR1或+AR2(加到AR1或加到AR2)将在语句或ACCU 1-L中指定的偏移量加到AR1(AR2)的内容上。首先将整数(16位)扩展为符号正确的24位,然后将其加到AR1的最低有效的24位(AR1中的相对地址的一部分)。在AR1(AR2)中,区域ID的部分(位24、25和26)保持不变。执行该指令时不考虑状态位,也不会影响状态位。

+AR1、+AR2:要加到AR1、AR2的内容中的整数(16位)由ACCU 1-L中的值指定。允许的值范围为-32768~+32767。

(9)BLD 程序显示指令(空)

指令格式为:BLD〈数字〉

〈数字〉指定BLD指令,范围为0~255。

BLD〈数字〉(程序显示指令;空指令)不执行任何功能,并且不影响状态位。该指令用于编程设备(PG)的图形显示。在STL中显示梯形图或FBD程序时将自动创建它。地址〈数字〉指定BLD指令并由编程设备生成。

(10)NOP 0 空指令和NOP 1 空指令

指令格式为:NOP 0 NOP 1

NOP 0(地址为“0”的指令NOP)不执行任何功能,并且不影响状态位。该指令代码包含具有16个零的位模式。当显示某个程序时,该指令仅对编程设备(PG)有用。

NOP 1(地址为“1”的指令NOP)不执行任何功能,并且不影响状态位。该指令代码包含具有16个“1”的位模式。当显示某个程序时,该指令仅对编程设备(PG)有影响。

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

我要反馈