程序控制类指令PPT课件

合集下载

三菱PLC功能指令ppt课件

三菱PLC功能指令ppt课件
FX2N系列可编程控制器功能指令
4.5.1概述
定义 可编程控制器的基本指令——基于继电器、定时器、计数 器类软元件,主要用于逻辑处理的指令。 功能指令(应用程序)——用于数据的传送、运算、变换 及程序控制等功能。
3
概述
功能指令 的特点
➢ 功能强大 ➢ 指令处理的数据多 ➢ 数据在存储单元中流转的过程复杂
2、子程序调用指令及应用
一、子程序调用指令的使用要素及梯形图表示
子程序调用指令要素
指令名称 子程序调用 子程序返回
助记符
CALL CALL(
P) SRET
指令代 码位数 FNC01
(16)
FNC02
操作数 [D·]
指针 P0~P62 嵌套 5级

程序步
3步(指令标 号)1步
1步
11
子程序调用指令及应用
1步
18
中断指令
中断是计算机所特有的一种工作方式。 中断子程序是为某些特定的控制功能而设定的。
特定的控制功能的共同特点:要求响应时间小于机器 的扫描周期。
三类中断:
➢ 输入中断 ➢ 定时器中断 ➢ 计数器中断
19
指针I
输入中断用指针。输入中断用指针I00□~I50□,共6点。 6个输入中断仅接收对应于输入口 X000~X005的信号触发。 这些输入口无论是硬件设置还是软件管理上都与一般的输 入口不同,可以处理比扫描周期短的输入中断信号。上升沿 或下降沿指对输入信号类别的选择。
图8-11 外部输入中断子程序示例
22
例:
说明:图中一开始为允许中断,当X1从OFF至ON且保持ON, 程序跳到指针I101处执行中断,即执行第13行,将K100 送到D1,然后返回主程序,对定时器T0计时,当计时达 到D12当前值K100时,T0触点闭合,Y0得电。

4.5 程序控制类指令

4.5 程序控制类指令

•根据两个无符号数比较结果转移
•JBE(JNA): ZF∨CF=1 则转移 •JNBE(JA): (ZF =0)∧(CF=0 )则转移
•比较两个带符号数,并根据比较结果转移
•JL(JNGE): SF OF=1 且ZF=0则转移
•JNL(JGE): SF OF=0或ZF=1则转移 •JLE(JNG): SF OF=1或ZF=1则转移 •JNLE(JG): SF OF=0 且ZF=0则转移
I P LOP2的段内偏移地址
CS LOP2的段地址
段间间接转移
JMP DWORD PTR [BX] I P [BX] CS [BX+2]
条件转移指令
形式: JX 短目标地址 X :1~3个英文字母,表示条件。 跳转范围: -128~+127字节(只有短转移,是相 对转移 ) 功能: 当指令中给出的条件满足时转移,可分 为依据单个标志位的条件转移指令和依据若干 个标志位组合的条件转移指令。
(1)、 CALL( Call a procedure)调用
段内直接调用
CALL addr(16位);一般用标号表示如:
CALL subp1; subp1为具有near属性的标号
段间直接调用 CALL addr(32位);一般用标号表示,如:
CALL subp; subp为具有far属性的标号
间接调用:
•测试CX的值为零转移 :JCXZ
例1
、比较1000H、1001单元的两个数,将大数
存2000H单元中。
MOV BX,1000H ;第一数送AL MOV AL, [BX] INC BX ;指向第二数 CMP AL,[BX] ;两数比较 JA LOP1 ;大于转 MOV AL,[BX] ;大数AL送 LOP1:MOV [2000H],AL HLT

第10讲-可编程序控制器的指令系统2

第10讲-可编程序控制器的指令系统2

0状态,T37的常开触点断开,Q0.0变为OFF,同时使T38的IN输入端
变为0状态,其常闭触点接通,T37又开始定时;
以后Q0.0的线圈将这样周期性地“通电”和“断电”,直到I0.0变
为OFF,Q0.0线圈“通电” 时间等于T38的设定值,“断电”时间等
于T37的设定值。
12
灭2S 亮3S
电气控制及PLC技术 西门子S7-200
STL
CTU Cxxx,PV CTD Cxxx,PV CTUD Cxxx,PV
计数器的指令格式
电气控制及PLC技术 西门子S7-200
LAD
指令使用说明
(1)梯形图指令符号中:CU为加 计数脉冲输入端;CD为减计数脉冲 输入端;R为加计数复位端;LD为 减计数复位端;PV为预置值
(2)Cxxx 为计数器的编号,范围 为:C0~C255
25
定时器的扩展
电气控制及PLC技术 西门子S7-200
60秒即1分钟定时 60个1分钟即1小时
26
电气控制及PLC技术 西门子S7-200
补充2:计数器指令应用举例*
• 计数器指令扩展( 200000次)
• S7-200系列PLC计数器最大的计数范围是32767,若须更大
的计数范围,则须进行扩展。如图6-40所示计数器扩展电路。
设定值(60S)。 • I0.0为OFF时,100ms定时器T37和计数器C4处于复位状态,它们不能
工作。 • I0.0为ON时,其常开触点接通,T37开始定时,60s后T37定时时间到,
其当前值等于设定值,它的常闭触点断开,使它自己复位,复位后T37 的当前值变为0,同时它的常闭触点接通,使它自己的线圈重新“通电” 又开始定时,T37将这样周而复始地工作,直到I0.0变为OFF。 • T37产生的脉冲送给C4计数器,记满60个数(即1h)后,C4当前值等 于设定值60,它的常开触点闭合。设T37和C4的设定值分别为KT和KC, 对于100ms定时器总的定时时间为:T=0.1KTKC(s)。

程序控制指令

程序控制指令

中断 溢出时中断
INT 中断类型 INTO
中断返回
IRET 5
1.转移指令
➢转移指令的实质: 改变IP(或者CS和IP)的内容。
➢对标志位flags的影响: 所有转移指令不会影响标志位flags。
➢分类: 分为无条件转移和条件转移两种。
2020/2/17
6
(1) 无条件转移指令 - JMP
本指令无条件转移到指定的目标地址, 以执行 从该地址开始的程序段。根据设置CS、IP的方法 ,JMP指令可实现短\近\远距离跳转, 指令分成4 种情况。
由于是段内转移,故转移后CS内容保持不变
2020/2/17
8
无条件段内转移
• 直接转移: JMP Lable
近地址标号

• 转移目标地址:
位移量
JMP Lable




段基地址CS不变;
CS : IP=Label
偏移地址IP=当前IP+位移量(16位)

2020/2/17
9
②段内间接转移
转移的目标地址由寄存器或存储单元的 内容给出。
例中的DWORD PTR表示转移地址是一个 双字。
2020/2/17
15
无条件段间转移
• 间接转移: JMP DWORD PTR[BX]
2020/2/17
CS : IP
[BX]
IP CS

JMP

指令码

XXH XXH XXH XXH

代 码 段 1
代 码 段 2
数 据 段
16
JMP DWORD PTR [SI]的机器码
2020/2/17

3.3.5 程序控制类指令

3.3.5  程序控制类指令

1. 无条件转移指令(1)jmp段内直接短程转移Jmp short标号jmp short loop1next:下一条指令………loop1:……….(loop1也可能在跳转指令前)跳转距离范围是-128-127(2) 段内直接近程转移Jmp near ptr标号跳转距离范围是-32768-32767(3)段内直接转移Jmp bx ; IP<—bxJmp word ptr [1000h] ;IP<—word ptr[1000h](4)段间直接转移Jmp far ptr标号(5)段间间接转移Jmp dword ptr [1000h] ;IP<—word ptr[1000h],CS<—word ptr[1002h] 2. 过程调用指令call(1)段内直接调用Call near ptr过程名<=> Call过程名可以暂把过程名理解为标号先把下条指令的有效地址入栈(为了能够以后恢复),然后跳转到新地址Push ip; ip为该跳转指令的下一条指令的有效地址Ip<—ip+loop loop表示跳转距离(2)段内间接调用Call word ptr [1000h]被调用过程的有效地址保存在内存ds:[1000h]处Push ipIp<—word ptr [1000h](3)段间直接调用Call far ptr过程名Push cs ;先入csPush ip ;再入ipIp<—过程入口地址的偏移量Cs<—过程入口地址的段基址(4)段间间接调用Call dword ptr [1000h]Push cs ;先入csPush ip ;再入ipIp<—word ptr [1000h]Cs<—word ptr [1002h]3. 过程返回指令ret,类似C语言中的return;段内返回, 格式:ret作用相当于pop ip,回到调用过程时保存的地址继续执行下条指令段间返回,格式:ret相当于pop ipPop cs回到调用过程时保存的地址继续执行下条指令带立即数返回,格式:ret n除返回原来的ip和cs外,还做sp=sp+n适用于过程带参数的情况,计算机调用函数或过程时,先把参数的值入栈,再把返回地址(下条指令地址)入栈。

S7-1200第08讲:移动操作,转换,程序控制,字逻辑运算,移位与循环移位指令

S7-1200第08讲:移动操作,转换,程序控制,字逻辑运算,移位与循环移位指令
SWAP:用于反转二字节和四字节数据元素 的字节顺序。不改变每个字节中的位顺序。
移动指令:
VariantGet:读取 SRC 参数所指向的变量,并将其写入到 DST参数的变 量中。
VariantPut:将 SRC 参数所引用的变量写入到 DST参数所指向的变量中。
CountOfElements:计算 IN参数指向的数组中所含数组元素的数目。
GET_ERR_ID:指示发生程序块执行错误,并报告错误的 ID(标识符代 码)。
RUNTIME:测量整个程序、各个块或命令序列的运行时间。
字逻辑运算指令:
AND、OR 和 XOR 逻辑运算指令: 所选数据类型将 IN1、IN2 和 OUT 设置为
相同的数据类型。 IN1 和 IN2 的相应位值相互组合,在参数
NORM_X:标准化通过参数 MIN 和 MAX指定的值范围内的参数 VALUE: OUT = (VALUE - MIN) / (MAX - MIN),其中 (0.0 <= OUT <= 1.0)
程序控制指令:
JMP:RLO(逻辑运算结果)= 1 时跳 转:如果有能流通过 JMP 线圈 (LAD), 则程序将从指定标签后的第一条指令 继续执行。
FLOOR:将实数(Real 或LReal)转换为小于或等于所选实数的最大整数 (IEEE“向负无穷取整”)。
TRUNC:TRUNC 用于将实数转换为整数。实数的小数部分被截成零(IEEE - 取整为零)。
SCALE_X:按参数 MIN 和 MAX所指定的数据类型和值范围对标准化的实 参数 VALUE(其中,0.0 <= VALUE <=1.0)进行标定: OUT = VALUE (MAX - MIN) + MIN

控制转移类指令ppt课件(全)

控制转移类指令ppt课件(全)

(4)CJNE @Ri,#data,rel 该指令功能:若(( Ri ))≥ data,(CY)=0; 若(( Ri ))<data ,CY=1; 若(( Ri ))≠ data,则PC←(PC)+rel,转移; 若(( Ri ))=data,则程序顺序执行.
例:如果(A) ≠ 00H,转移到CX1;如果(R1) ≠ 10H, 转移到CX2;如果(A) ≠(60H),转移到CX3。程序段 如下:
(2)指令长短不一样。LJMP是3字节指令;AJMP、 SJMP是2字节指令;JMP是1字节指令。
(3)指令机器码构成不同。AJMP、LJMP、JMP后跟 的是绝对地址,而SJMP后跟的是相对地址。
(4)地址特点不同。LJMP、AJMP、SJMP的转移目标 地址是固定的,程序执行过程中不变;JMP的转移目 标地址随程序的执行是动态变化的。
1. 长跳转指令 LJMP (3字节) LJMP addr16 ; PC addr16
•执行该指令时, 将目标语句的16位地址addr16装入 PC, 程序无条件转向指定的目标语句执行。 •由于长跳转指令提供的是16位地址,对应64KB的程 序存储器地址空间,所以可跳转到64KB程序存储器 地址空间的任何地方。 •实际应用中长跳转汇编指令写作“LJMP 目标语句 标号”的形式,如“LJMP LOOP”。
• 指令对A、DPTR和标志位均无影响。
注意:以上四条指令结果均不影响程序状态 字寄存器 PSW 。
5.LJMP、AJMP、SJMP、JMP四条无条件转移指令的 区别:
(1)转移范围不一样。LJMP、JMP转移范围是64KB; AJMP转移范围是与当前PC值同一个2KB区间;SJMP 转移范围是相对当前PC值的-128B~+127B范围内。

PLC功能指令(课件PPT)

PLC功能指令(课件PPT)

6
⑵ 位组合数据 因为4位BCD码表示1位十进制数据,所以在
FX系列PLC中,用相邻的4个位元件作为一个组合, 表示一个十进制数,表达形式为KnX、KnY、KnM、 KnS等。n—指4位BCD码的个数。例如:
K1X0表示由X3~X0这 4位输入继电器的组合; K3Y0表示由Y13~Y10、Y7~Y0这12位输出继 电器的组合; K4M10表示由M25~M10这16位辅助继电器的组 合。
特殊用
D8000~ D8255
256点
FX2N FX2NC
D0~
D199 128点①
D200~
D511 312点②
D512~
D7999 7488点③
根据参数设定, 可以将D1000以 上作为文件寄存 器使用
D8000~
D8255 256点
① 非停电保持领域,通过设定参数可变更停电保持领域; ② 停电保持领域,通过设定参数可变更非停电保持领域; ③ 无法通过设定参数变更停电保持的特性。
14
15
5. 比较指令 比较指令CMP 是将源操作数 [S1] 和 [S2] 的数据进行比较, 然后将目标操作数 [D]进行相应的操作。如图4-10所示,X0 =1时,将C20的当前值与常数K100进行比较。若当前值小 于K100,[D]指定的M0自动置1(即Y0接通);若当前值等 于K100,M1自动置1(即Y1接通);若当前值大于K100, M2自动置1(即Y2接通)。在X0 断开,即不执行CMP 指令 时,M0~M2 保持X0断开前的状态。因此若要清除比较结果 需要用RST或ZRST指令。 【说明】数据比较是进行代数值大小比较(即带符号比较)。 所有的源数据均按二进制处理。
16
【应用举例】有一高性能的密码锁,由两组密码数据锁 定。开锁时只有输入两组正确的密码,才能打开锁,锁打开 后,经过5s再重新锁定。

课件 PPT 可编程序控制器及其应用 三菱 第三版课题三 顺序控制设计法及顺序控制指令应用

课件  PPT 可编程序控制器及其应用 三菱 第三版课题三 顺序控制设计法及顺序控制指令应用

课题三 顺序控制设计法及顺序控制指令应用
(2)第i程序步用逻辑代数书写的过程为每一步Mi的产 生都是由前一步压动行程开关或按下按钮(转换条件)Xi 产生,则
Mi XiMi1 产生后应该有一段时间区域保持不变,故应该有自保 (自锁),则:
Mi XiMi1 Mi 每一步的消失都是随后一步的出现而消失:
双出线接近开关的接线 a)无感应物 b)有感应物
课题三 顺序控制设计法及顺序控制指令应用
任务2 液体自动混合装置控制系统设计与装调
1.掌握状态继电器的功能及步进顺控指令的功能及应 用,熟悉顺序功能图及其编程方法。
2.掌握单序列结构顺序功能图的画法,并能通过顺序 功能图进行步进顺序控制系统的设计。
课题三 顺序控制设计法及顺序控制指令应用
(3)如需小车停下,只要按下停止按钮SB1即可实现。
课题三 顺序控制设计法及顺序控制指令应用
一、顺序控制设计法
顺序控制设计法是用输入信号控制代表各步的编程元 件(如辅助继电器M 和状态继电器S),再用它们控制输出信 号。步是根据输出信号的状态来划分的。顺序控制设计法 是一种先进的设计方法,很容易被初学者接受,程序的调 试、修改和阅读也很容易,并且大大缩短了设计周期,提 高了设计效率。
课题三 顺序控制设计法及顺序控制指令应用
3)当液位上升到SL1时,关闭电磁阀YV2,搅拌电动机 开始搅拌。
4)搅拌电动机工作20s后停止搅拌,混合液阀门打开, 放出混合液体。
5)当液位下降到SL3时,开始计时,且装置继续放液, 将容器放空,计时满20s后,混合液阀门关闭,自动开始下 一个周期。
(3)停止操作 当按下停止按钮SB2后,液体混合装置在完成当前的工 作循环后才停止操作。
在实际生产中往往会遇到设备工作台或送料小车的多地自动 往返循环控制的情况,如图所示为送料小车三地自动往返循环控 制工作画面。

C程序设计教程课件PPT课件

C程序设计教程课件PPT课件

哈希查找
通过哈希函数将元素的关键字转 换为数组的索引,然后在对应位 置进行查找。时间复杂度为O(1)。
THANKS
感谢观看
选择排序
每次从未排序序列中选出最小 (或最大)元素,放到已排序
序列的末尾。时间复杂度为 O(n^2)。
插入排序
将未排序元素插入到已排序序 列中的适当位置,以达到排序 的目的。时间复杂度为O(n^2)。
常见排序算法实现原理及性能比较
快速排序
采用分治策略,通过一趟排序将待排序序列分割成独立的两部分,其中一部分的所有元素都比另一部分的 所有元素小,然后再对这两部分继续进行排序。时间复杂度为O(nlogn)。
示例1
使用fprintf()和fscanf()函数实现 文件的读写操作。
示例2
使用fgetc()和fputc()函数实现文 件的字符读写操作。
示例3
使用fgets()和fputs()函数实现文 件的字符串读写操作。
示例4
使用fread()和fwrite()函数实现 文件的数据块读写操作。
数据存储格式选择(如:文本、二进制)
01
文本格式
02
二进制格式
03
选择依据
将数据以字符形式存储,便于查看和编 辑,但占用空间较大。
将数据以二进制形式存储,占用空间较 小,读写效率高,但不便于直接查看和 编辑。
根据实际需求选择数据存储格式,如需 要频繁读写大量数据且对存储空间有要 求时,可以选择二进制格式;如需要方 便查看和编辑数据时,可以选择文本格 式。
算法概念及评价标准
算法概念
为解决特定问题而规定的一系列操作步骤,具有有穷性、确定性、可行性、输 入和输出五个基本特性。
评价标准

可编程序控制器PLC的基本概念ppt课件(共31张PPT)

可编程序控制器PLC的基本概念ppt课件(共31张PPT)

当PLC输入接通或相应线圈通电时,此触点断开。
线圈:PLC中也称逻辑线圈,常用符号为 ○ ,在PLC中用它 作为输出元件,以控制外部设备(如电磁阀、接触器、指示灯等); 也可以用来控制PLC内部的其他触点,以构成复杂的控制逻辑。
第1章 概 述
(2) 定时器:它的作用与继电器控制中的延时继电器或时间继电器相同。 常见的定时单位有0.1 s、0.2 s、1 s几种,其符号因型号不同各异。日本立石 公司C系列机用下列符号表示:
第 第11章章概概 述述
第1章 概 述
1.1 可Байду номын сангаас程序控制器(PLC)的基本概念
1.2 PLC的主要功能和特点
1.3 PLC的应用领域和发展趋势
第1章 概 述
1.1 可编程序控制器(PLC)的基本概念
1.1.1 可编程序控制器的产生
1968年,美国最大的汽车制造商通用汽车公司(GM公司)为了适应生产工艺不断 更新的需要,期望找到一种新的方向,尽可能减少重新设计继电控制系统和重 新接线的工作,以降低成本、缩短周期,设想把计算机通用、灵敏、功能完备 等优点和继电控制系统的简单易懂、价格便宜等优点结合起来,制成一种通用 控制装置,并把计算机的编程方法和程序输入方式加以简化,用面向控制过程、 面向问题的“自然语言〞进行编程,使得不熟悉计算机的人也能方便地使用。 为此进行招标,1969年,美国数字设备公司(DEC公司)研制出了第一台可编程 序逻辑控制器(Programmable Logic Controller,简称PLC),在GM公司的自动装 配线上试用获得了成功。
① ③
应 不这用如范P一L围C可:点靠微:机就除了越用在突控制出领域。外,而还大用量用P于L科学C计完算、成数据一处理项、计控算机制通信工等方程面。,在系统设计完成以

Python语言流程控制ppt课件

Python语言流程控制ppt课件

3.2 条件流程控制
第三章 流程控制ቤተ መጻሕፍቲ ባይዱ
多分支选择结构由if、一个或多个elif和一个else子块组成,else子块可省略。一个 if语句可以包含多个elif语句,但结尾最多只能有一个else。多分支选择结构的语法如下。
if 表达式1:
语句块1 elif 表达式2:
语句块2 elif 表达式3:
语句块3 ……
表达式1 True
False 表达式2
False
True
语句块1
语句块2
表达式3 True 语句块3
False 语句块n
else: 语句块n
图3.4多分支选择结构
3.2 条件流程控制
第三章 流程控制
例如请输入一个正整数,判断它是否能同时被2和3整除。
3.2 条件流程控制
第三章 流程控制
选择结构可以进行嵌套来表达更复杂的逻辑关系。使用选择结构嵌套时,一定要 控制好不同级别的代码块的缩进,否则就不能被Python正确理解和执行。在if 语句嵌套 中, if、if...else、if...elif...else它们可以进行一次或多次相互嵌套,例如结构如下。
3.1 条件语句
第三章 流程控制
顺序结构是程序中最常见的流程结构,按照程序中语句的先后顺序,自上而下依 次执行,称为顺序结构;
语句块1
语句块2
语句块3
3.1 条件语句
第三章 流程控制
条件语句是用来判断给定的条件是否满足,并根据判断的结果(True或False)决 定是否执行或如何执行后续流……程的语句,它使代码的执行顺序有了更多选择,以 实现更多的功能。
第三章 流程控制
3.1 条件语句 3.2 条件流程控制 3.3 循环流程控制 3.4 实验 3.5 小结

程序控制指令

程序控制指令
(0A3256H)=1688H JMP SI ;(IP)←(SI)=0256H JMP TABLE[BX] ;(IP)← (0A3256H)=1688H EA=[16D× (DS)+(BX)+TABLE =(0A0000H+0056H+3200H)=(0A3256H)=1688H
3.2.4程序控制指令
3.2.4程序控制指令
4. 子程序调用时,系统将自动保护返回地址,以便调用结束后返
(1) 格式Ⅰ: CALL 操作Ⅰ:(SP)← (SP)-2,[(SP+1),(SP)]← (IP),(IP)←DISP)← (SP)-2,[(SP+1),(SP)]← (IP),(IP)← (REG) 或(IP)← (MEM 〖BFQ〗 说明:DISP16为16位偏移量,REG为寄存器,MEM为存储单 元,段内间接调用子程序入口地址存放在REG或MEM中。段 内调用是将IP指向子程序入口地址,从而进入子程序。
3.2.4程序控制指令
(3) 格式: RET 操作:(IP)← [(SP+1),(SP (SP)← (SP)+2
3.2.4程序控制指令
(4) 格式: RET 操作:(IP)← [(SP+1),(SP)],(SP)←
(SP)+2 (CS)← [(SP+1),(SP)],(SP)← (SP)+2
说明:子程序结束之前必须要有一条RET指令,才能保证 调用程序正确返回调用处。段内返回,系统自动从堆栈顶部弹 出一个字的内容,送到IP寄存器,使子程序返回到主程序中 CALL指令的下一条指令。段间返回时系统自动地从堆栈顶部 弹两个字的内容,分别送到IP和CS寄存器中。
JMP SHORT LAB1

第五章 3 程序控制指令

第五章 3 程序控制指令

N:子程序的编号,取值范围:000—049 子程序的编号,取值范围:000 049
功能: 一起使用, 定义子程序N 功能: SBN和RET一起使用,用SBN定义子程序 和 一起使用 定义子程序 开始, 开始, RET(93)用于每段子程序的结尾,表示子 ( )用于每段子程序的结尾, 程序结束。 程序结束。
(2) 软件复位
只要25200 ON,高速计数器复位。 只要 ,高速计数器复位。 另外, 断电再上电时高速计数器自动复位。 另外,当PLC断电再上电时高速计数器自动复位。 断电再上电时高速计数器自动复位
19
3.使用高速计数器时的设定 .
使用高速计数器前必须进行必要的设定, 使用高速计数器前必须进行必要的设定 , 否则 使用无效。 使用无效。 系列PLC,设定值写入 对CPM1A系列 系列 ,设定值写入DM6642中。 中 用设定值确定高速计数器功能是否使用、 用设定值确定高速计数器功能是否使用 、 复位 方式、计数模式等。 方式、计数模式等。
7
00100 25313 25502 22007 25314 25502 00100 25313
主 程 序
子 程 序
二、宏指令及其功能
宏指令也是调用子程序的指令, 宏指令也是调用子程序的指令,但与前述子程序有 所不同。宏指令子程序的操作数I1是子程序中第一个 所不同。宏指令子程序的操作数 是子程序中第一个 输入字参数,操作数O1是子程序中第一个输出字参 输入字参数,操作数 是子程序中第一个输出字参 每次调用时, 的数据可以不同, 数,每次调用时, I1 和O1的数据可以不同,由于宏 的数据可以不同 调用的子程序其输入/输出的数据可以变换 输出的数据可以变换, 调用的子程序其输入 输出的数据可以变换,因此提 高了子程序存在的价值。 高了子程序存在的价值。

程序控制类指令

程序控制类指令

程序控制类指令
1 段内直接短转移
格式:JMP SHORT OPR 功能:SHORT表明程序转移的目标地 址与JMP指令在同一个代码段内,操作数 可以是目标地址的标号或指定一个8位的 偏移量,转 移 范 围 为 - 128 ~ 127 字 节。 SHORT可省略。
指令执行后,CS的内容不变,IP的值 (即JMP指令的下一条指令)与8位偏移量 之和被赋予当前的IP。
2 段内直接近转移
程序控制类指令
格式:JMP NEAR PTR OPR 功能:NEAR PTR表明程序转移的目标地址与JMP指令在同一个代码段内,操作数可以是目标地址的 标号或指定一个16位的偏移量,转移范围为-32768~32767字节。NEAR PTR可省略。
指令执行后,CS的内容不变,IP的值(即JMP指令的下一条指令)与16位偏移量之和被赋予当前的IP。
在执行子程序调用指令时
首先要将CALL指令的下一条指令 的地址压入堆栈保护起来,作为子
3 段内间接转移
格式:JMP WORD PTR OPR 功能:程序转移的目标地址与JMP指令在同一个代码段内,指令中的操作数是16位寄存器或存储器单 元,段内转移的偏移地址存放在16位寄存器或存储器中连续两个字节的存储单元中。使用寄存器作为操作 数时,WORD PTR省略,如JMP BX。
指令执行后,CS的内容不变,寄存器中的内容或存储器中指定地址开始的连续两个字节单元的内容被 赋予当前的IP。
条件转移指令
单个标志位的状态作 为转移条件的转移指

两个无符号数的比较 结果作为转移条件的
转移指令
两个带符号数的比较 结果作为转移条件的
转移指令
程序控制类指令
条件转移指令
程序控制类指令

第8章程序控制指令

第8章程序控制指令
合条件为真时,执行子程序
只有当一个或多个输入逻辑 组合条件为真时,仅在一次
扫描过程中执行子程序
例题8.3
设一个生产系统的PLC程序在检测到15个 错误条件的任一个,都将锁定一个位,从 而停止生产系统。
要求设计一个报警系统,当错误发生时 红色指示灯亮2秒,暗1秒。若60秒内没有 人按下复位按钮,则再加入蜂鸣器报警。 因15个位置中任一个检测到错误都要调用 报警逻辑,所以需要将报警逻辑编写成子 程序形式,以便于调用。
目的
提供子程序和程序扫描相关的不同程序控制指 令的整体概述
介绍SLC和Logix系统的程序控制指令 说明程序控制指令如何应用于自动化系统的
PLC程序中
目标
解释程序控制指令功能 描述子程序的操作 解释立即输入和输出指令的功能 描述清除指令的操作 画出并描述使用程序控制指令表达的应用梯形图 使用SLC及Logix系统的程序控制指令,开发梯形
8.3.2 跳转和标记区域控制指令
跳转(JMP)输出指令和输入标记(LBL) 指令一起使用,标记指令确定跳转指令的目 的梯级。
SLC系列PLC中的标记为Q2:(0~255),而 Logix系列使用不大于40个字符的文本标记
使用跳转指令注意事项:
编程使用跳转指令应特别小心,不要因跳转返回 指令使程序滞留在循环内太长时间而触发看门狗
确认LBL指令是梯级中的第一个输入指令 千万不要将跳转指令编写到MCR区域中
程序梯形图梯级 扫描
跳转
没有 扫描 的程 序段
跳转目的
跳转和标记指令的标准梯形图
SLC系列 向前跳转 被跳转指令跳过的梯形图梯级
Logix系列 向前跳转
被跳转指令跳过的梯形图梯级
向后跳转 因为跳转指令而重复的梯形图梯级 标记多跳转指令对应单一标记

三章指令集结构 PPT资料共77页

三章指令集结构 PPT资料共77页

指令集表征着计算机的基本功能和使用属性,是计 算机系统设计中的核心向题。是表征一台计算机性能的 重要因素,它的格式与功能不仅直接影响到机器的硬件 结构,而且也直接影响到系统软件,影响到机器的适用 范围。
2. 指令的组成
◆ 一条指令一般应包含如下信息:
(1) 操作码
(2) 操作数的地址
(3) 操作结果的地址
二、指令的操作码
指令系统中的每一条指令都有唯一确定的操作码。 操作码位数取决于机器指令系统的规模。 1.固定长度操作码
操作码的长度固定,且集中放在指令字的一 个字段中,其余部分全部用于地址码。 此方式有利于简化硬件设计和减少指令译码 时间,用于字长较长的大、中型及超级小型机中。
2.可变长度操作码 操作码的长度允许有几种不同的选择,对地址
量不断扩大,要寻址整个主存空间,将造成指令长度 加长。另外程序位置受到限制。
3.2.3.2 间接寻址 指令中指定的是含有操作数地址的内存单元的地址。 至少要进行两次内存访问。

例如:LDAC 5 或 LDAC (5) IR OP … 5
5 操作数的地址10
10 操作数35
◆ 间接寻址的特点 ① 间接寻址比直接寻址灵活,可扩大寻址范围,以短
例如: Intel 8086指令 MOV AL,[BX+4]
设 BX=2000H,BX+4=2019H (2019H)=82H,则 AL←82H
例如: LDAC 5(X) ;变址寄存器X:数值10,则 5+10=15 ;读取15号单元中的数据并且把它存储在累加器中。
◆ 变址寻址可用于数组、向量、字符串等数据的处理 例: Intel 8086指令 LODS ;AL←(SI),SI←SI+1
(4) 下一条指令地址
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
类指令
转移指令 循环控制 子程序调用 中断控制
3.9 转移指令
通过修改指令的偏移地址或段地址及偏移地 址实现程序的转移
无条件转移指令 无条件转移到目标地址,执行新的指令
有条件转移指令 在具备一定条件的情况下转移到目标地址
无条件转移指令
格式:
JMP OPRD
目标地址
与JMP在 同一代码段
与JMP不在 同一代码段
2)用于无符号数的条件转移指令 ① JA/JNBE ;高于/不低于等于转移,
CF∨ZF=0 ② JNA/JBE ;不高于/低于等于转移,
CF∨ZF=1 ③ JB/JNAE ;低于/不高于等于转移,CF=
1 ④ JNB/JAE ;不低于/高于等于转移,CF=
3)用于带符号数的条件转移指令 ① JG/JNLE 大于/不小于等于转移,(SF ∨OF)∨ ZF=
STRING DB ‘Personal Computer’ …
MOV BX,OFFSET STRING DEC BX MOV CX,17 NEXT: INC BX CMP [BX],BYTE PTR 20H LOOPNE NEXT

方法二: MOV DI,OFFSET STRING MOV AL,20H MOV CX,17
段内直接寻址
IP
JMP FAR Label
远地址标号

JMP

XXH

XXH

XXH
1
XXH
Label与
CS


JMP之间
Label

的位移量


2
无条件段间转移
段内间接寻址 JMP DWORD PTR[BX]
[BX] IP
CS



JMP
段 1


指令码



2
XXH
XXH

XXH

XXH

执行原程序
断点恢复
段内调用
子过程与原调用程序在同一代码 段,在调用之前只需保护断点的
入口 地址
偏移地址
格式: CALL NEAR PROC
断点
近过程名
段内调用例
CALL TIMRE
直接调用
CALL WORD PTR[SI]
间接调用
段间调用
子过程与原调用程序不在同一代码段, 在调用之前需保护断点的段基地址和偏 移地址。先将断点的CS压栈,再压入IP
0 ② JGE/JNL 大于等于/不小于转移,(SF ∨OF)=0 ③ JL/JNGE 小于/不大于等于转移,(SF ∨OF)=1 ④ JLE/JNG 小于等于/不大于转移,(SF ∨OF)∨ ZF=
1
转移指令例
统计内存数据段中以TABLE为首地 址的100个8位符号数中正数、负数 和零元数的个数。
转移指令例(流程图)
将存放各元素个 数的单元清零
取首地址 设串长度
取一个字节数
为负?
N
Y
为零?
Y
N 正数个数加1
负数个数加1
零元素加1
3.10 循环控制指令
控制程序在以当前IP为中心的-128~+127 范围内循环执行
循环次数由CX寄存器指定
LOOP LOOPZ LOOPNZ
无条件循环指令
从堆栈中弹出断点地址,返回原程序 格式:
RET RET指令一般位于子程序的最后
3.12中断指令
中断与过程调用:
中断是随机事件或异常事件引起,调用则是事 先已在程序中安排好
响应中断请求不仅要保护断点地址,还要保护 PSW内容
调用指令在指令中直接给出子程序入口地址, 中断指令只给出中断向量码,入口地址则在向 量码指向的内存单元中
格式: CALL FAR PROC
段间调用例
CALL FAR TIMRE CALL DWORD PTR[SI]
段间调用例
格式:
CALL FAR PROC
格式例:
CALL FAR TIMRE
SI
CALL DWORD PTR[SI]
CS
IP
CALL




XXH
XXH

XXH

XXH

返回指令
1. 中断指令
格式: INT n
说明: nх4
中断类型码 n=0 〜 255
n х4
入口的偏移地址 入口的段地址
存放中断服务子程序入口 地址的单元的偏移地址
该单元在数据段,段地址=DS
XXH
XXH

XXH

XXH




码 段
中断指令的执行过程
将PSW压入堆栈; 将INT指令的下一条指令的CS、IP压栈; 由n× 4得到存放中断向量的地址; 将中断向量(中断服务程序入口地址)
原则上可实现在整个内存空间的转移
无条件转移指令 段内转移
转移的目标地址在当前代码段内
指令中直接给 出目标地址
由指令中的寄存器 或存储器操作数指 出目标地址
段内直接寻址
段内间接寻址
无条件段内转移
段内直接寻址 JMP Label
近地址标号
位移量

JMP




Label
下一条要执行指令的

偏移地址=当前IP+位移量
格式: LOOP LABEL
循环条件: CX ≠ 0
操作: CX JNZ 符号地址
条件循环指令
格式:
LOOPZ LABEL LOOPE LABEL 循环条件: CX ≠ 0 ZF=1
格式:
LOOPNZ LABEL LOOPNE LABEL 循环条件: CX ≠ 0 ZF=0
例:在一个由17个字符组成的字符串STRING中,现 在查找该字符串中是否包含空格字符(其ASCII码为 20H),若未找到或尚未查完,则继续查找,直到找 到第一个空格字符或查完了才退出循环。
无条件段内转移 段内间接寻址
JMP BX JMP WORD PTR[BX]
IP
BX=1200

JMP


码 段
指令码

XXH XXH
数 据 段

无条件转移指令——段间转移
转移的目标地址不在当前代码段内
指令中直接给 出目标地址
段间直接寻址
由指令中的32位存 储器操作数指出目 标地址
段间间接寻址
无条件段间转移
REPNE SACSB
JZ NEXT
JMP NFOUND NEXT: … NFOUND:…
3.11 子程序调用返回指令
段内调用 段间调用
段内直接调用 段内间接调用 段间直接调用 段间间接调用
调用指令与转移指令的比较
用于调用一个子过程 调用前须保护断点地址 子过程执行结束后要返回原调用处继续

条件转移指令
在满足一定条件下,程序转移到目标地 址继续执行
条件转移指令均为段内短转移,即转移 范围为: -128~+127
条件转移指令的应用
1)简单条件(直接标志)转移指令(共10条) 根据CF、ZF、SF、OF、PF分别为1或0,共有10种状态,
设置了10种转移指令: JE/JZ JS JO JC JP ;标志为1转移 JNE/JNZ JNS JNO JNC JNP ;标志为0转
相关文档
最新文档