第5章数据处理、运算指令及应用 5.1 数据处理指令 5.2 算术运算、逻辑运算指令 5.3 表功能指令.

Slides:



Advertisements
Similar presentations
2 和 5 的倍数的特征 运动热身 怎样找一个数的倍数? 从小到大写出 2 的倍数( 10 个): 写出 5 的倍数( 6 个) 2 , 4 , 6 , 8 , 10 , 12 , 14 , 16 , 18 , 20 5 , 10 , 15 , 20 , 25 , 30.
Advertisements

数制 (1) 基数:在一种数制中,只能使用一组固定的数字符号 来表示数目的大小,其使用数字符号的个数,就称为该数 制的基数。其规则是 “ 逢 b 进一 ” ,则称为 b 进制的基数。 十进制( Decimal )的基数是 10 ,,它有 10 个数字符号, 即 0 , 1 , 2 , 3 , 4 ,
人教版五年级数学上册. 因数 因数 5555 积 75 结论:一个因数不变,另一个因数扩大 (或缩小) 10 倍、 100 倍、 1000 倍,积 也扩大(或缩小) 10 倍、 100 倍、 1000 倍。 仔细观察,看能得出什么结论?
BCD码运算的十进制调整指令 专用于对BCD码运算的结果进行调整 包括:AAA、DAA、AAS、DAS、AAM、AAD
信息技术:硬件、软件、网络、数据库 计算机技术、多媒体技术、压缩技术...
第1章 计算机基础知识 1.4 二进制数的运算及其加法电路 1.4.1二进制数据算术运算规则 (1) 加法运算规则
实验四 利用中规模芯片设计时序电路(二).
微机原理与接口技术 大家好!.
可编程序控制器应用 王如松.
冷凍空調自動控制 - 控制系統範例 李達生.
可编程序控制器 主讲:张波.
功能指令 第一节 功能指令的基本知识 第二节 程序流控制(FNC00~FNC09) 第三节 传送和比较指令(FNC10~FNC19)
第4章 基本指令 4.1 位操作类指令 4.2 运算指令 4.3 其他数据处理指令 4.4 表功能指令 4.5 转换指令.
走进编程 程序的顺序结构(二).
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
6 S7-200可编程控制器 指令集 2019/1/2 PLC指令集.
第一章 函数 函数 — 研究对象—第一章 分析基础 极限 — 研究方法—第二章 连续 — 研究桥梁—第二章.
C语言程序设计基础 刘新国.
时序逻辑电路实验 一、 实验目的 1.熟悉集成计数器的功能和使用方法; 2.利用集成计数器设计任意进制计数器。 二、实验原理
第二章 Java语言基础.
逆向工程-汇编语言
数字指令 CMP ==I IN1 IN2 M0.0 Q 5.7 IW0 IW2 T4 I0.7 S_ODT Q4.5 S5T#35s MW0
CPU结构和功能.
第六章 算术运算 6.1 十进制数加减运算 在计算机中采用BCD码来表示十进制数。BCD码就是使用四位二进制数表示一位十进制数。
第4章 S7-200系列PLC功能指令 4.1 数据处理指令 4.2 算术和逻辑运算指令 4.3 表功能指令 4.4 转换指令
若2002年我国国民生产总值为 亿元,如果 ,那么经过多少年国民生产总值 每年平均增长 是2002年时的2倍? 解:设经过 年国民生产总值为2002年时的2倍, 根据题意有 , 即.
第一章 函数与极限.
计算.
学习目标 1、什么是字符集 2、字符集四个级别 3、如何选择字符集.
第四章 MCS-51定时器/计数器 一、定时器结构 1.定时器结构框图
第四章 数据传送和数据比较指令.
4 S7-200可编程控制器 基本概念 2019/4/13.
第9章 位 运 算.
浙江长征职业技术学院-计算机应用系-相方莉制作
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
<编程达人入门课程> 本节内容 内存的使用 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群: ,
C语言程序设计 第一章 数据类型, 运算符与表达式 第二章 顺序程序设计 第三章 选择结构程序设计 第四章 循环控制 第五章 数组.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第六章 Excel的应用 一、Excel的单元格与区域 1、单元格:H8, D7, IV26等 2、区域:H2..D8, HS98:IT77
第4章 Excel电子表格制作软件 4.4 函数(一).
组合逻辑电路 ——中规模组合逻辑集成电路.
实验三 16位算术逻辑运算实验 不带进位控制的算术运算 置AR=1: 设置开关CN 1 不带进位 0 带进位运算;
本节内容 内存复制指令 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第九节 赋值运算符和赋值表达式.
实验二 带进位控制8位算术逻辑运算实验 带进位控制8位算术逻辑运算: ① 带进位运算 ② 保存运算后产生进位
第4课时 绝对值.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
九宫趣味数学──手指关节计算器 上海浦东建平实验小学 王政皓.
项目六 小灯跑马点亮效果的PLC控制 任务一 小灯跑马点亮效果的PLC 控制.
分数再认识三 真假带分数的练习课.
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
第二章 Java基本语法 讲师:复凡.
3. 逻辑运算指令 A、简单逻辑操作指令 CLR A. (不影响CY、AC、 OV标志) CPL A
实验目的:掌握数据的顺序存储结构及它们在计算机中的操作。 实验内容:
本节内容 标志寄存器.
Chap 6 数据类型和表达式 6.1 数据的存储和基本数据类型 6.2 常量和变量 6.3 数据的输入和输出 6.4 类型转换
复习 标签(label)、文本框(text)控件 按钮:点击事件
C++语言程序设计 C++语言程序设计 第一章 C++语言概述 第十一组 C++语言程序设计.
第4章 S7-200的功能指令 4.1 功能指令概述 4.2 数据处理指令 4.3 数学运算指令 4.4 程序控制指令
循环程序设计 在程序中包含重复执行的程序段称为循环程序设计。循环程序可以使程序结构性强、可读性好,从而大大提高了程序质量。
数据表示 第 2 讲.
认知1 掌握“与”、“或”和“异或”指令格式及应用
第一章 微型计算机中的数据类型.
鸡兔同笼(续) ——选择结构.
微机原理与接口技术 西安邮电大学计算机学院 董 梁.
第五单元 数据处理类应用指令 任务一 用PLC应用指令实现电动机的Y-△启动控制 任务二 用PLC实现闪光灯的闪光频率控制 任务三 密码锁
顺序结构程序设计 ——关于“字符串”和数值.
第9章 位 运 算.
第二次课后作业答案 函数式编程和逻辑式编程
学习目标 1、什么是列类型 2、列类型之数值类型.
Presentation transcript:

第5章数据处理、运算指令及应用 5.1 数据处理指令 5.2 算术运算、逻辑运算指令 5.3 表功能指令

5.1 数据处理指令 5.1.1 数据传送指令 5.1.2 字节交换、字节立即读写指令 5.1.3 移位指令及应用举例 5.1.4 转换指令 5.1.5 天塔之光的模拟控制实训

5.1.1 数据传送指令 1. 字节、字、双字、实数单个数据传送指令MOV 2.字节、字、双字、实数数据块传送指令BLKMOV

1. 字节、字、双字、实数单个数据传送指令MOV LAD STL MOVB IN,OUT MOVW IN,OUT MOVD IN,OUT MOVR IN,OUT 操作数及数据类型 IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。 OUT:VB, IB, QB, MB, SB, SMB, LB, AC。 IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, 常量, AC。 OUT:VW, T, C, IW, QW, SW, MW, SMW, LW, AC, AQW。 IN:VD, ID, QD, MD, SD, SMD, LD, HC, AC, 常量。 OUT:VD, ID, QD, MD, SD, SMD, LD, AC。 IN:VD, ID, QD, MD, SD, SMD, LD, AC, 常量。 字节 字、整数 双字、双整数 实数 功能 使能输入有效时,即EN=1时,将一个输入IN的字节、字/整数、双字/双整数或实数送到OUT指定的存储器输出。在传送过程中不改变数据的大小。传送后,输入存储器IN中的内容不变。

2.字节、字、双字、实数数据块传送指令BLKMOV LAD STL BMB IN,OUT BMW IN,OUT BMD IN,OUT 操作数及数据类型 IN:VB, IB, QB, MB, SB, SMB, LB。 OUT:VB, IB, QB, MB, SB, SMB, LB。 数据类型:字节 IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW。 OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AQW。 数据类型:字 IN/ OUT :VD, ID, QD, MD, SD, SMD, LD。 数据类型:双字 N:VB, IB, QB, MB, SB, SMB, LB, AC, 常量;数据类型:字节;数据范围:1-255。 功能 使能输入有效时,即EN=1时,把从输入IN开始的N个字节(字、双字)传送到以输出OUT开始的N个字节(字、双字)中。

5.1.2 字节交换、字节立即读写指令 1. 字节交换指令 2. 字节立即读写指令

1. 字节交换指令 LAD STL 功能及说明 SWAP IN 功能:使能输入EN有效时,将输入字IN的高字节与低字节交换,结果仍放在IN中。 IN:VW, IW, QW, MW, SW, SMW, T, C, LW, AC。数据类型:字。

2. 字节立即读写指令 LAD STL 功能及说明 BIR IN,OUT 功能:字节立即读 IN: IB OUT:VB, IB, QB, MB, SB, SMB, LB, AC。 数据类型:字节 BIW IN,OUT 功能:字节立即写 IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量 OUT:QB

5.1.3 移位指令及应用举例 移位指令分为左、右移位和循环左、右移位及寄存器移位指令三大类。前两类移位指令按移位数据的长度又分字节型、字型、双字型3种。 1. 左、右移位指令 2. 循环左、右移位指令 3.移位寄存器指令(SHRB)

1.左、右移位指令 左、右移位数据存储单元与SM1.1(溢出)端相连,移出位被放到特殊标志存储器SM1.1位。移位数据存储单元的另一端补0。移位指令格式见表5-5。 (1)左移位指令(SHL) 使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向左移N位后(右端补0),将结果输出到OUT所指定的存储单元中,如果移位次数大于0,最后一次移出位保存在“溢出”存储器位SM1.1。如果移位结果为0,零标志位SM1.0置1。 (2)右移位指令 使能输入有效时,将输入IN的无符号数字节、字或双字中的各位向右移N位后,将结果输出到OUT所指定的存储单元中,移出位补0,最后一移出位保存在SM1.1。如果移位结果为0,零标志位SM1.0置1。 (3)使ENO = 0的错误条件:0006(间接寻址错误),SM4.3(运行时间)

左、右移位指令格式 LAD STL SLB OUT,N SRB OUT,N SLW OUT,N SRW OUT,N SLD OUT,N SRD OUT,N 操作数及数据类型 IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。 OUT:VB, IB, QB, MB, SB, SMB, LB, AC。 数据类型:字节 IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量。 OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC。 数据类型:字 IN:VD, ID, QD, MD, SD, SMD, LD, AC, HC, 常量。 OUT:VD, ID, QD, MD, SD, SMD, LD, AC。 数据类型:双字 N:VB, IB, QB, MB, SB, SMB, LB, AC, 常量;数据类型:字节;数据范围:N≤数据类型(B、W、D)对应的位数。 功能 SHL:字节、字、双字左移N位;SHR:字节、字、双字右移N位。

2. 循环左、右移位指令 循环移位将移位数据存储单元的首尾相连,同时又与溢出标志SM1.1连接,SM1.1用来存放被移出的位。指令格式见表5-6。 (1)循环左移位指令(ROL) 使能输入有效时,将IN输入无符号数(字节、字或双字)循环左移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。 (2)循环右移位指令(ROR) 使能输入有效时,将IN输入无符号数(字节、字或双字)循环右移N位后,将结果输出到OUT所指定的存储单元中,移出的最后一位的数值送溢出标志位SM1.1。当需要移位的数值是零时,零标志位SM1.0为1。

(3)移位次数N≥数据类型(B、W、D)时的移位位数的处理 如果操作数是字节,当移位次数N≥8时,则在执行循环移位前,先对N进行模8操作(N除以8后取余数),其结果0-7为实际移动位数。 如果操作数是字,当移位次数N≥16时,则在执行循环移位前,先对N进行模16操作(N除以16后取余数),其结果0-15为实际移动位数。 如果操作数是双字,当移位次数N≥32时,则在执行循环移位前,先对N进行模32操作(N除以32后取余数),其结果0-31为实际移动位数。 (4)使ENO = 0的错误条件:0006(间接寻址错误),SM4.3(运行时间)

循环左、右移位指令格式 LAD STL RLB OUT,N RRB OUT,N RLW OUT,N RRW OUT,N RLD OUT,N RRD OUT,N 操作数及数据类型 IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。 OUT:VB, IB, QB, MB, SB, SMB, LB, AC。 数据类型:字节 IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量。 OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC。 数据类型:字 IN:VD, ID, QD, MD, SD, SMD, LD, AC, HC, 常量。 OUT:VD, ID, QD, MD, SD, SMD, LD, AC。 数据类型:双字 N:VB, IB, QB, MB, SB, SMB, LB, AC, 常量;数据类型:字节。 功能 ROL:字节、字、双字循环左移N位;ROR:字节、字、双字循环右移N位。

(4)移位指令影响特殊内部标志位:SM1.1(为移出的位值设置溢出位)。 3.移位寄存器指令(SHRB) 移位寄存器指令是可以指定移位寄存器的长度和移位方向的移位指令。其指令格式如图5-6所示。 说明: (1)移位寄存器指令SHRB将DATA数值移入移位寄存器。 (2)DATA和S-BIT的操作数为I, Q, M, SM, T, C, V, S, L 。数据类型为:BOOL变量。N的操作数为VB, IB, QB, MB, SB, SMB, LB, AC, 常量。数据类型为:字节。 (3)使ENO = 0的错误条件:0006(间接地址),0091(操作数超出范围),0092(计数区错误)。 (4)移位指令影响特殊内部标志位:SM1.1(为移出的位值设置溢出位)。 LAD STL SHRB DATA,S-BIT,N

5.1.4 转换指令 转换指令是对操作数的类型进行转换,并输出到指定目标地址中去。转换指令包括数据的类型转换、数据的编码和译码指令以及字符串类型转换指令。 不同功能的指令对操作数要求不同。类型转换指令可将固定的一个数据用到不同类型要求的指令中,包括字节与字整数之间的转换,整数与双整数的转换,双字整数与实数之间的转换,BCD码与整数之间的转换等。

5.1.4 转换指令 1. 字节与字整数之间的转换 2. 字整数与双字整数之间的转换 3. 双整数与实数之间的转换 4. BCD码与整数的转换 5. 译码和编码指令 6. 七段显示译码指令 7. ASCII码与十六进制数之间的转换指令

1. 字节与字整数之间的转换 LAD STL BTI IN,OUT ITB IN,OUT 操作数及数据类型 IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量, 数据类型:字节 OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC,数据类型:整数 IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量,数据类型:整数 OUT:VB, IB, QB, MB, SB, SMB, LB, AC, 数据类型:字节 功能及 说明 BTI指令将字节数值(IN)转换成整数值,并将结果置入OUT指定的存储单元。因为字节不带符号,所以无符号扩展。 ITB指令将字整数(IN)转换成字节,并将结果置入OUT指定的存储单元。输入的字整数0至255被转换。超出部分导致溢出,SM1.1=1。输出不受影响。 ENO=0的错误条件 0006 间接地址 SM4.3 运行时间 0006 间接地址 SM1.1 溢出或非法数值

2. 字整数与双字整数之间的转换 LAD STL ITD IN,OUT DTI IN,OUT 操作数及数据类型 IN:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量, 数据类型:整数 OUT:VD, ID, QD, MD, SD, SMD, LD, AC,数据类型:双整数 IN:VD, ID, QD, MD, SD, SMD, LD, HC, AC,常量,数据类型:双整数 OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC, 数据类型:整数 功能及 说明 ITD指令将整数值(IN)转换成双整数值,并将结果置入OUT指定的存储单元。符号被扩展。 DTI指令将双整数值(IN)转换成整数值,并将结果置入OUT指定的存储单元。如果转换的数值过大,则无法在输出中表示,产生溢出SM1.1=1,输出不受影响。 ENO=0的错误条件 0006 间接地址 SM4.3 运行时间 0006 间接地址 SM1.1 溢出或非法数值

3. 双整数与实数之间的转换 LAD STL DTR IN,OUT ROUND IN,OUT TRUNC IN,OUT 操作数及数据类型 IN:VD, ID, QD, MD, SD, SMD, LD, HC, AC, 常量。 数据类型:双整数 OUT:VD, ID, QD, MD, SD, SMD, LD, AC。 数据类型:实数 IN:VD, ID, QD, MD, SD, SMD, LD, AC, 常量。 功能及 说明 DTR指令将32位带符号整数IN转换成32位实数,并将结果置入OUT指定的存储单元 。 ROUND指令按小数部分四舍五入的原则,将实数(IN)转换成双整数值,并将结果置入OUT指定的存储单元。 TRUNC(截位取整)指令按将小数部分直接舍去的原则,将32位实数(IN)转换成32位双整数,并将结果置入OUT指定存储单元。 ENO=0的错误条件 0006 间接地址 SM4.3 运行时间 0006 间接地址 SM1.1 溢出或非法数值

4. BCD码与整数的转换 LAD STL BCDI OUT IBCD OUT 操作数及数据类型 IN :VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量。 OUT:VW, IW, QW, MW, SW, SMW, LW, T, C, AC。 IN/OUT数据类型:字 功能及 说明 BCD-I指令将二进制编码的十进制数IN转换成整数,并将结果送入OUT指定的存储单元。IN的有效范围是BCD码 0至9999。 I-BCD指令将输入整数IN转换成二进制编码的十进制数,并将结果送入OUT指定的存储单元。IN的有效范围是0至9999。 ENO=0的错误条件 0006 间接地址,SM1.6 无效BCD数值,SM4.3 运行时间。

5. 译码和编码指令 LAD STL DECO IN,OUT ENCO IN,OUT 操作数及数据类型 IN:VB, IB, QB, MB, SMB, LB, SB, AC, 常量。数据类型:字节 OUT:VW, IW, QW, MW, SMW, LW, SW, AQW, T, C, AC。数据类型:字 IN:VW, IW, QW, MW, SMW, LW, SW, AIW, T, C, AC, 常量。数据类型: 字 OUT:VB, IB, QB, MB, SMB, LB, SB, AC。数据类型:字节 功能及 说明 译码指令根据输入字节(IN)的低4位表示的输出字的位号,将输出字的相对应的位,置位为1,输出字的其他位均置位为0。 编码指令将输入字(IN)最低有效位(其值为1)的位号写入输出字节(OUT)的低4位中。 ENO=0的错误条件 0006 间接地址, SM4.3 运行时间

6. 七段显示译码指令 七段译码指令SEG将输入字节16#0~F转换成七段显示码。指令格如下表所示。 LAD STL 功能及操作数 SEG IN,OUT 功能:将输入字节(IN)的低四位确定的16进制数(16#0~F),产生相应的七段显示码,送入输出字节OUT。 IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。 OUT:VB, IB, QB, MB, SMB, LB, AC。IN/OUT的数据类型:字节

7. ASCII码与十六进制数之间的转换指令 LAD STL ATH IN,OUT,LEN HTA IN,OUT,LEN 操作数及数据类型 IN/ OUT: VB, IB, QB, MB, SB, SMB, LB。数据类型:字节。 LEN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量。数据类型:字节。最大值为255。 功能及 说明 ASCII至HEX(ATH)指令将从IN开始的长度为LEN 的ASCII字符转换成十六进制数,放入从OUT开始的存储单元。 HEX至ASCII (HTA)指令将从输入字节(IN)开始的长度为LEN的十六进制数转换成ASCII字符,放入从OUT开始的存储单元。 ENO=0的错误条件 0006 间接地址, SM4.3 运行时间 ,0091 操作数范围超界 SM1.7 非法ASCII数值(仅限ATH)

5.2 算术运算、逻辑运算指令 5.2.1 算术运算指令 5.2.2 逻辑运算指令 5.2.3 递增、递减指令 5.2.4 运算单位转换实训

5.2.1 算术运算指令 1. 整数与双整数加减法指令 2. 整数乘除法指令 3. 实数加减乘除指令 4. 数学函数变换指令

1. 整数与双整数加减法指令 整数加法(ADD-I)和减法(SUB-I)指令是:使能输入有效时,将两个16位符号整数相加或相减,并产生一个16位的结果输出到OUT。 双整数加法(ADD-D)和减法(SUB-D)指令是:使能输入有效时,将两个32位符号整数相加或相减,并产生一个32位 结果输出到OUT。

整数与双整数加减法指令格式 LAD STL MOVW IN1,OUT +I IN2,0UT -I IN2,0UT MOVD IN1,OUT +D IN2,0UT 功能 IN1+IN2=OUT IN1-IN2=OUT 操作数及数据类型 IN1/IN2:VW, IW, QW, MW, SW, SMW, T, C, AC, LW, AIW, 常量, *VD, *LD, *AC。 OUT:VW, IW, QW, MW, SW, SMW, T, C, LW, AC, *VD, *LD, *AC。 IN/OUT数据类型:整数。 IN1/IN2: VD, ID, QD, MD, SMD, SD, LD, AC, HC, 常量, *VD, *LD, *AC。 OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC。 IN/OUT数据类型:双整数。 ENO=0的错误条件 0006 间接地址, SM4.3 运行时间, SM1.1 溢出

说明: (1)当IN1、IN2和OUT操作数的地址不同时,在STL指令中,首先用数据传送指令将IN1中的数值送入OUT,然后再执行加、减运算即:OUT+IN2=OUT、OUT-IN2=OUT。为了节省内存,在整数加法的梯形图指令中,可以指定IN1或IN2=OUT,这样,可以不用数据传送指令。如指定INI=OUT,则语句表指令为:+I IN2,OUT;如指定IN2=OUT,则语句表指令为:+I IN1,OUT。在整数减法的梯形图指令中,可以指定IN1=OUT,则语句表指令为:-I IN2,OUT。这个原则适用于所有的算术运算指令,且乘法和加法对应,减法和除法对应。 (2)整数与双整数加减法指令影响算术标志位SM1.0(零标志位),SM1.1(溢出标志位)和SM1.2(负数标志位)。

2. 整数乘除法指令 整数乘法指令(MUL-I)是:使能输入有效时,将两个16位符号整数相乘,并产生一个16位积,从OUT指定的存储单元输出。 整数除法指令(DIV-I)是:使能输入有效时,将两个16位符号整数相除,并产生一个16位商,从OUT指定的存储单元输出,不保留余数。如果输出结果大于一个字,则溢出位SM1.1置位为1。 双整数乘法指令(MUL-D):使能输入有效时,将两个32位符号整数相乘,并产生一个32位乘积,从OUT指定的存储单元输出。

双整数除法指令(DIV-D):使能输入有效时,将两个32位整数相除,并产生一个32位商,从OUT指定的存储单元输出,不保留余数。 整数乘法产生双整数指令(MUL):使能输入有效时,将两个16位整数相乘,得出一个32位乘积,从OUT指定的存储单元输出。 整数除法产生双整数指令(DIV):使能输入有效时,将两个16位整数相除,得出一个32位结果,从OUT指定的存储单元输出。其中高16位放余数,低16位放商。

整数乘除法指令格式 LAD STL 功能 MOVW IN1,OUT *I IN2,0UT /I IN2,0UT MOVD IN1,OUT *D IN2,0UT /D IN2,0UT MUL IN2,OUT DIV IN2,OUT 功能 IN1*IN2=OUT IN1/IN2=OUT

3. 实数加减乘除指令 实数加法(ADD-R)、减法(SUB-R)指令:将两个32位实数相加或相减,并产生一个32位实数结果,从OUT指定的存储单元输出。 实数乘法(MUL-R)、除法(DIV-R)指令:使能输入有效时,将两个32位实数相乘(除),并产生一个32位积(商),从OUT指定的存储单元输出。 操作数:IN1/IN2:VD, ID, QD, MD, SMD, SD, LD, AC, 常量, *VD, *LD, *AC。 OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC。 数据类型:实数。

实数加减乘除指令格式 LAD STL MOVD IN1,OUT +R IN2,0UT -R IN2,0UT *R IN2,0UT 功能 IN1+IN2=OUT IN1-IN2=OUT IN1*IN2=OUT IN1/IN2=OUT ENO=0的错误条件 0006 间接地址, SM4.3 运行时间, SM1.1 溢出 0006 间接地址 ,SM1.1 溢出,SM4.3 运行时间,SM1.3 除数为0 对标志位的影响 SM1.0(零),SM1.1(溢出) , SM1.2(负数),SM1.3 (被0除)

4. 数学函数变换指令 (1)平方根(SQRT)指令:对32位实数(IN)取平方根,并产生一个32位实数结果,从OUT指定的存储单元输出。 (2)自然对数(LN)指令:对IN中的数值进行自然对数计算,并将结果置于OUT指定的存储单元中。 求以10为底数的对数时,用自然对数除以2.302585(约等于10的自然对数)。 (3)自然指数(EXP)指令:将IN取以e为底的指数,并将结果置于OUT指定的存储单元中。将“自然指数”指令与“自然对数”指令相结合,可以实现以任意数为底,任意数为指数的计算。求yx,输入以下指令:EXP (x * LN (y))。 例如:求23=EXP(3*LN(2))=8;27的3次方根=271/3=EXP(1/3*LN(27))=3。 (4)三角函数指令:将一个实数的弧度值IN分别求SIN、COS、TAN,得到实数运算结果,从OUT指定的存储单元输出。

数学函数变换指令格式 LAD STL SQRT IN,OUT LN IN,OUT EXP IN,OUT SIN IN,OUT COS IN,OUT TAN IN,OUT 功能 SQRT(IN)=OUT LN(IN)=OUT EXP(IN)=OUT SIN(IN)=OUT COS(IN)=OUT TAN(IN)=OUT 操作数及数据类型 IN: VD, ID, QD, MD, SMD, SD, LD, AC, 常量, *VD, *LD, *AC OUT:VD, ID, QD, MD, SMD, SD, LD, AC, *VD, *LD, *AC 数据类型:实数

5.2.2 逻辑运算指令 逻辑运算是对无符号数按位进行与、或、异或和取反等操作。操作数的长度有B、W、DW。指令格式如表5-18所示 1. 逻辑与(WAND)指令:将输入IN1,IN2按位相与,得到的逻辑运算结果,放入OUT指定的存储单元。 2. 逻辑或(WOR)指令:将输入IN1,IN2按位相或,得到的逻辑运算结果,放入OUT指定的存储单元。 3. 逻辑异或(WXOR)指令:将输入IN1,IN2按位相异或,得到的逻辑运算结果,放入OUT指定的存储单元。 4. 取反(INV)指令:将输入IN按位取反,将结果放入OUT指定的存储单元。

逻辑运算指令格式 LAD STL ANDB IN1,OUT ANDW IN1,OUT ANDD IN1,OUT ORB IN1,OUT ORW IN1,OUT ORD IN1,OUT XORB IN1,OUT XORW IN1,OUT XORD IN1,OUT INVB OUT INVW OUT INVD OUT 功能 IN1,IN2按位相与 IN1,IN2按位相或 IN1,IN2按位异或 对IN取反 操作数 B IN1/IN2:VB, IB, QB, MB, SB, SMB, LB, AC, 常量, *VD, *AC, *LD OUT:VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *AC, *LD W IN1/IN2:VW, IW, QW, MW, SW, SMW, T, C, AC, LW, AIW, 常量, *VD, *AC, *LD OUT:VW, IW, QW, MW, SW, SMW, T, C, LW, AC, *VD, *AC, *LD DW IN1/IN2:VD, ID, QD, MD, SMD, AC, LD, HC, 常量, *VD, *AC, SD, *LD OUT:VD, ID, QD, MD, SMD, LD, AC, *VD, *AC, SD, *LD

说明: (1)在表5-18中,在梯形图指令中设置IN2和OUT所指定的存储单元相同,这样对应的语句表指令如表中所示。若在梯形图指令中,IN2(或IN1)和OUT所指定的存储单元不同,则在语句表指令中需使用数据传送指令,将其中一个输入端的数据先送入OUT,在进行逻辑运算。如MOVB IN1,OUT ANDB IN2,OUT (2)ENO=0的错误条件:0006 间接地址,SM4.3 运行时间 (3)对标志位的影响:SM1.0(零)

5.2.3 递增、递减指令 递增、递减指令用于对输入无符号数字节、符号数字、符号数双字进行加1或减1的操作。指令格式如下表所示。

递增、递减指令格式 LAD STL INCB OUT DECB OUT INCW OUT DECW OUT INCD OUT DECD OUT 功能 字节加1 字节减1 字加1 字减1 双字加1 双字减1 操作及数据类型 IN:VB, IB, QB, MB, SB, SMB, LB, AC, 常量, *VD, *LD, *AC。 OUT:VB, IB, QB, MB, SB, SMB, LB, AC, *VD, *LD, *AC 。 IN/OUT数据类型:字节。 IN: VW, IW, QW, MW, SW, SMW, AC, AIW, LW, T, C, 常量, *VD, *LD, *AC 。 OUT:VW, IW, QW, MW, SW, SMW, LW, AC, T, C, *VD, *LD, *AC 。 数据类型:整数。 IN:VD, ID, QD, MD, SD, SMD, LD, AC, HC, 常量, *VD, *LD,*AC。 OUT;VD, ID, QD, MD, SD, SMD, LD, AC, *VD, *LD, *AC。 数据类型:双整数。

1. 递增字节(INC-B)/递减字节(DEC-B)指令 递增字节和递减字节指令在输入字节(IN)上加1或减1,并将结果置入OUT指定的变量中。递增和递减字节运算不带符号。

2. 递增字(INC-W)/递减字(DEC-W)指令 递增字和递减字指令在输入字(IN)上加1或减1,并将结果置入OUT。递增和递减字运算带符号(16#7FFF > 16#8000)。

3.递增双字(INC-DW)/递减双字(DEC-DW)指令 递增双字和递减双字指令在输入双字(IN)上加1或减1,并将结果置入OUT。递增和递减双字运算带符号(16#7FFFFFFF > 16#80000000)。

5.3 表功能指令 数据表是用来存放字型数据的表格,如图5-23所示。表格的第一个字地址即首地址,为表地址,首地址中的数值是表格的最大长度(TL),即最大填表数。表格的第二个字地址中的数值是表的实际长度(EC),指定表格中的实际填表数。每次向表格中增加新数据后,EC加1。从第三个字地址开始,存放数据(字)。表格最多可存放100个数据(字),不包括指定最大填表数(TL)和实际填表数(EC)的参数。

数据表 要建立表格,首先须确定表的最大填表数。如下图所示。 // 输入表格的最大填表数 LD SM0.1 MOVW +6, VW200

5.3.1 填表指令 ATT DATA,TBL 表填表(ATT)指令:向表格(TBL)中增加一个字(DATA)。如右图所示。 (1) DATA为数据输入端,其操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量, *VD, *LD, *AC; (2)TBL为表格的首地址,其操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, , *LD *AC;数据类型为:字。 (3)指令执行后,新填入的数据放在表格中最后一个数据的后面,EC的值自动加1。 (4)使ENO = 0的错误条件:0006(间接地址),0091(操作数超出范围),SM1.4(表溢出),SM4.3(运行时间)。 (5)填表指令影响特殊标志位:SM1.4(填入表的数据超出表的最大长度,SM1.4=1)。 ATT DATA,TBL

5.3.2 表取数指令 从数据表中取数有先进先出(FIFO)和后进先出(LIFO)两种。执行表取数指令后,实际填表数EC值自动减1。 先进先出指令(FIFO):移出表格(TBL)中的第一个数(数据0),并将该数值移至DATA指定存储单元,表格中的其他数据依次向上移动一个位置。 后进先出指令(LIFO):将表格(TBL)中的最后一个数据移至输出端DATA指定的存储单元,表格中的其他数据位置不变。 表取数指令格式如下表所示。

表取数指令格式 LAD STL FIFO TBL,DATA LIFO TBL,DATA 说明 操作数及数据类型 TBL:VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, *LD, *AC。数据类型:字。 DATA:VW, IW, QW, MW, SW, SMW, LW, AC, T, C, AQW, *VD, *LD, *AC。 数据类型:整数。

5.3.3 表查找指令 表格查找(TBL-FIND)指令在表格(TBL)中搜索符合条件的数据在表中的位置(用数据编号表示,编号范围为0~99)。其指令格式如下图所示。 FND= TBL,PATRN,INDX FND<> TBL,PATRN,INDX FND< TBL,PATRN,INDX FND> TBL,PATRN,INDX

(1)梯形图中各输入端的介绍 TBL:为表格的实际填表数对应的地址(第二个字地址),即高于对应的“增加至表格”、“后入先出”或“先入先出”指令TBL操作数的一个字地址(两个字节)。 TBL操作数:VW, IW, QW, MW, SW, SMW, LW, T, C, *VD, *LD, *AC。数据类型:字。 PTN:是用来描述查表条件时进行比较的数据。 PTN操作数:VW, IW, QW, MW, SW, SMW, AIW, LW, T, C, AC, 常量, *VD, *LD, *AC。数据类型:整数。

INDX:搜索指针,即从INDX所指的数据编号开始查找,并将搜索到的符合条件的数据的编号放入INDX所指定的存储器。 INDX操作数:VW, IW, QW, MW, SW, SMW, LW, T, C, AC, *VD, *LD, *AC。数据类型:字。 CMD:比较运算符,其操作数为常量1~4,分别代表 =、<>、<, >。数据类型:字节 。

(2)功能说明 表格查找”指令搜索表格时,从INDX指定的数据编号开始,寻找与数据PTN的关系满足CMD比较条件的数据。参数如果找到符合条件的数据,则INDX的值为该数据的编号。要查找下一个符合条件的数据,再次使用“表格查找”指令之前须将INDX加1。如果没有找到符合条件的数据,INDX的数值等于实际填表数EC。一个表格最多可有100数据,数据编号范围:0~99。将INDX的值设为0,则从表格的顶端开始搜索。

(3)使ENO = 0的错误条件 SM4.3(运行时间),0006(间接地址),0091(操作数超出范围)。

5.3.4 字填充指令 字填充(FILL)指令用输入IN存储器中的字值写入输出OUT开始N个连续的字存储单元中。N的数据范围:1~255。其指令格式如下图所示。 FILL IN,OUT,N

指令格式说明 (1)IN为字型数据输入端,操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, AIW, AC, 常量, *VD, *LD, *AC;数据类型为:整数。N的操作数为:VB, IB, QB, MB, SB, SMB, LB, AC, 常量, *VD, *LD, *AC; 数据类型:字节。 OUT的操作数为:VW, IW, QW, MW, SW, SMW, LW, T, C, AQW, *VD, *LD, *AC;数据类型:整数。 (2)使ENO = 0的错误条件:SM4.3(运行时间),0006(间接地址),0091(操作数超出范围)