首页 理论教育 累加器指令及其作用

累加器指令及其作用

时间:2023-06-28 理论教育 版权反馈
【摘要】:累加器指令只能在语句表中使用,用于处理单个或多个累加器的内容。图3-115 PUSH指令执行前后图3-116 POP指令执行前后进入累加器堆栈指令ENT将累加器3的内容复制到累加器4,累加器2的内容复制到累加器3。因为可以用累加器之外的地址区来保存中间结果,实际上很少使用堆栈指令。累加器1的其他3个字节不变,最低字节和它的相邻字节之间不产生进位。

累加器指令及其作用

累加器指令只能在语句表中使用,用于处理单个或多个累加器的内容(见表3-25)。这些指令的执行与RLO(逻辑运算结果)无关,也不会对RLO产生影响。

表3-25 累加器指令

978-7-111-53570-6-Chapter03-214.jpg

(1)TAK指令

指令TAK用来交换累加器1和累加器2的内容。

(2)堆栈指令

S7-300的CPU的两个累加器或S7-400的CPU的4个累加器组成一个堆栈,堆栈用来存放需要快速存取的中间运算结果,堆栈中的数据按“先入后出”的原则存取。以S7-400的堆栈为例,PUSH(入栈)指令使堆栈中各层原有的数据依次向下移动一层(见图3-115),栈顶(累加器1)的值保持不变。POP(出栈)指令使堆栈中各层原有的数据依次向上移动一层(见图3-116),累加器4的值保持不变。

978-7-111-53570-6-Chapter03-215.jpg

图3-115 PUSH指令执行前后(www.xing528.com)

978-7-111-53570-6-Chapter03-216.jpg

图3-116 POP指令执行前后

进入累加器堆栈指令ENT将累加器3的内容复制到累加器4,累加器2的内容复制到累加器3。离开累加器堆栈指令LEAVE将累加器3的内容复制到累加器2,累加器4的内容复制到累加器3。使用ENT和LEAVE指令可以用累加器3、4来保存中间结果。数学运算指令包含LEAVE指令的功能。

因为可以用累加器之外的地址区来保存中间结果,实际上很少使用堆栈指令。

(3)加、减8位整数指令

字节加指令INC和字节减指令DEC将累加器1的最低字节的内容加上或减去指令中的8位常数(0~255),运算结果储存在累加器的最低字节。累加器1的其他3个字节不变,最低字节和它的相邻字节之间不产生进位。

(4)空指令

程序显示指令“BLD<数字>”、空指令NOP 0和NOP 1并不执行什么功能,也不会影响状态位。“BLD<数字>”指令只是用于编程设备的图形显示。用STEP 7将梯形图或功能块图转换为语句表时,可能会出现BLD指令。指令中的常数<数字>是编程设备自动生成的。

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

我要反馈