02_4控制转移指令

合集下载

加工中心代码

加工中心代码

加工中心代码 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】1.M00——程序结束指令M00指令实际上是一个暂停指令。

功效是履行此指令后,机床结束一切操作。

即主轴停转、切削液关闭、进给结束。

但模态信息全数被保存,在按下把持面板上的启动指令后,机床重新启动,持续履行后面的程序。

该指令重要用于工件在加工过程中需停机检查、测量零件、手工换刀或交接班等。

2.M01——打算结束指令M01指令的功效与M00类似,不同的是,M01只有在预先按下把持面板上“选择结束开关”按钮的情形下,程序才会结束。

如果不按下“选择结束开关”按钮,程序履行到M01时不会结束,而是持续履行下面的程序。

M01结束之后,按启动按钮可以持续履行后面的程序。

该指令重要用于加工工件抽样检查,清理切屑等。

3.M02——程序结束指令M02指令的功效是程序全数结束。

此时主轴停转、切削液关闭,数控装置和机床复位。

该指令写在程序的最后一段。

4.M03、M04、M05——主轴正转、反转、结束指令M03表现主轴正转,M04表现主轴反转。

所谓主轴正转,是从主轴向Z轴正向看,主轴顺时针迁移转变;反之,则为反转。

M05表现主轴结束迁移转变。

M03、M04、M05均为模态指令。

要阐明的是有些系统(如华中数控系统CJK6032数控车床)不容许M03和M05程序段之间写入M04,否则在履行到M04时,主轴立即反转,进给结束,此时按“主轴停”按钮也不能使主轴结束。

5.M06——主动换刀指令M06为手动或主动换刀指令。

当履行M06指令时,进给结束,但主轴、切削液不停。

M06指令不包含刀具选择功效,常用于加工中心等换刀前的筹备工作。

6.M07、M08、M09——冷却液开关指令M07、M08、M09指令用于冷却装置的启动和关闭。

属于模态指令。

M09表现关闭冷却液开关,并注销M07、M08、M50及M51(M50、M51为3号、4号冷却液开)。

控制转移类指令和位操作指令

控制转移类指令和位操作指令

控制转移类指令和位操作指令(一).控制转移类指令计算机运行过程中,有时因为操作的需要,程序不能按顺序逐条执行指令,需要改变程序运行方向,即将程序跳转到某个指定的地址再顺序执行下去。

控制转移类指令的功能就是根据要求修改程序计数器PC的内容,以改变程序运行方向,实现转移。

控制转移类指令可分为:无条件转移、条件转移、绝对转移、相对转移和调用、返回指令。

下面我们将分类介绍。

1.无条件转移指令(4条)LJMP add16 ;add16→PC,无条件跳转到add16地址,可在64KB范围内转移,称为长转移指令AJMP add11 ;add11→PC,无条件转向add11地址,在2KB范围内转移SJMP rel ;PC+2+rel→PC,相对转移,rel是偏移量,8 位有符号数,范围-128~127,即可向后跳转128,向前可跳转127JMP @A+DPTR ;A+DPTR→PC ,属散转指令,无条件转向A与DPTR内容相加后形成的新地址例执行指令LJMP 9100H不管这条指令存放在哪里,执行时将使程序转移到9100H,和AJMP,SJMP指令是有差别的。

例程序2000H MOV R0 , #10H ;10H→PC2002H SJMP 03H ;PC+2+rel=2002H+2+03H=2007H→PC┇┇2006H ┇2007H ┇从说明中可见,执行SJMP 03H 指令后,马上跳转到2007H地址执行程序。

2.条件转移指令(8条)条件转移指令是根据某种特定条件转移的指令。

条件满足时转移,条件不满足时则顺序执行下面的指令。

JZ rel ;A=0转向PC+2+rel→PC,A≠0顺序执行JNZ rel ;A≠转向PC+2+rel→PC ,A=0顺序执行CJNE A, direct, rel ;A≠ (direct)转向PC+3+rel→PC且当A>(direct),Cy=0;当A<(direct),Cy=1;否则A=(direct),PC+3→PC即顺序执行CJNE A, #data, rel ;A data P转向PC+3+rel→PC且当A >data,Cy=0;当A <data,Cy=1,;A=data,PC+3→PC顺序执行CJNZ Rn, #data, rel ;Rn≠data转向PC+3+rel→PC;且当Rn>data,Cy=0,当Rn<data,Cy=1;Rn=data,PC+3→PC顺序执行CJNE @Ri,#data, rel ;(Ri) ≠data ,PC+3+rel→PC;且当(Ri)>data ,Cy=0,当(Ri)<data,Cy=1;(Ri)=data, PC+3→PC顺序执行DJNZ Rn, rel ;Rn-1→Rn ,Rn ≠0转向PC+2+rel→PC;Rn=0,PC+2→PC顺序执行DJNZ direct, rel ;(direct)-1→(direct),(direct) ≠0转向 PC+2+rel→PC;(direct)=0 ,PC+2→PC顺序执行注意:1)CJNE类指令借用进位标志Cy作为比较结果的标志位。

汇编语言指令大全X86和X87汇编指令大全(带注释)

汇编语言指令大全X86和X87汇编指令大全(带注释)

汇编语⾔指令⼤全X86和X87汇编指令⼤全(带注释)⽬录⼀、数据传输指令1. 通⽤数据传送指令.2. 输⼊输出端⼝传送指令.3. ⽬的地址传送指令.4. 标志传送指令.⼆、算术运算指令三、逻辑运算指令四、串指令五、程序转移指令六、伪指令七、处理机控制指令&#xff1a;标志处理指令浮点运算指令集1、控制指令2、数据传送指令3、⽐较指令4、运算指令其它1.机械码,⼜称机器码.2.需要熟练掌握的全部汇编知识(只有这么多)3.常见修改(机器码)4.两种不同情况的不同修改⽅法⼀、数据传输指令它们在存贮器和寄存器、寄存器和输⼊输出端⼝之间传送数据.1. 通⽤数据传送指令.MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压⼊堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压⼊堆栈.POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压⼊堆栈.POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP 交换32位寄存器⾥字节的顺序XCHG 交换字或字节.(⾄少有⼀个操作数为寄存器,段寄存器不可作为操作数)CMPXCHG ⽐较并交换操作数.(第⼆个操作数必须为累加器AL/AX/EAX)XADD 先交换再累加.(结果在第⼀个操作数⾥)XLAT 字节查表转换.----BX指向⼀张256字节的表的起点,AL为表的索引值(0-255,即0-FFH);返回AL为查表结果.([BX&#43;AL]-&gt;AL)2. 输⼊输出端⼝传送指令.IN I/O端⼝输⼊. ( 语法: IN 累加器, {端⼝号│DX} )OUT I/O端⼝输出. ( 语法: OUT {端⼝号│DX},累加器 )输⼊输出端⼝由⽴即⽅式指定时, 其范围是 0-255; 由寄存器 DX 指定时,其范围是 0-65535.3. ⽬的地址传送指令.LEA 装⼊有效地址.例: LEA DX,string ;把偏移地址存到DX.LDS 传送⽬标指针,把指针内容装⼊DS.例: LDS SI,string ;把段地址:偏移地址存到DS:SI.LES 传送⽬标指针,把指针内容装⼊ES.例: LES DI,string ;把段地址:偏移地址存到ES:DI.LFS 传送⽬标指针,把指针内容装⼊FS.例: LFS DI,string ;把段地址:偏移地址存到FS:DI.LGS 传送⽬标指针,把指针内容装⼊GS.例: LGS DI,string ;把段地址:偏移地址存到GS:DI.LSS 传送⽬标指针,把指针内容装⼊SS.例: LSS DI,string ;把段地址:偏移地址存到SS:DI.4. 标志传送指令.LAHF 标志寄存器传送,把标志装⼊AH.SAHF 标志寄存器传送,把AH内容装⼊标志寄存器.PUSHF 标志⼊栈.POPF 标志出栈.PUSHD 32位标志⼊栈.POPD 32位标志出栈.⼆、算术运算指令ADD 加法.ADC 带进位加法.INC 加 1.AAA 加法的ASCII码调整.DAA 加法的⼗进制调整.SUB 减法.SBB 带借位减法.DEC 减 1.NEG 求反(以 0 减之).CMP ⽐较.(两操作数作减法,仅修改标志位,不回送结果).AAS 减法的ASCII码调整.DAS 减法的⼗进制调整.MUL ⽆符号乘法.结果回送AH和AL(字节运算),或DX和AX(字运算),IMUL 整数乘法.结果回送AH和AL(字节运算),或DX和AX(字运算),AAM 乘法的ASCII码调整.DIV ⽆符号除法.结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).IDIV 整数除法.结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).AAD 除法的ASCII码调整.CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去)CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)三、逻辑运算指令AND 与运算.XOR 异或运算.NOT 取反.TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL 逻辑左移.SAL 算术左移.(&#61;SHL)SHR 逻辑右移.SAR 算术右移.(&#61;SHR)ROL 循环左移.ROR 循环右移.RCL 通过进位的循环左移.RCR 通过进位的循环右移.以上⼋种移位指令,其移位次数可达255次.移位⼀次时, 可直接⽤操作码. 如 SHL AX,1.移位&gt;1次时, 则由寄存器CL给出移位次数.如 MOV CL,04 SHL AX,CL四、串指令DS:SI 源串段寄存器 :源串变址.ES:DI ⽬标串段寄存器:⽬标串变址.CX 重复次数计数器.AL/AX 扫描值.D标志 0表⽰重复操作中SI和DI应⾃动增量; 1表⽰应⾃动减量.Z标志⽤来控制扫描或⽐较操作的结束.MOVS 串传送.( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )CMPS 串⽐较.( CMPSB ⽐较字符. CMPSW ⽐较字. )SCAS 串扫描.把AL或AX的内容与⽬标串作⽐较,⽐较结果反映在标志位.LODS 装⼊串.把源串中的元素(字或字节)逐⼀装⼊AL或AX中.( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. ) STOS 保存串.是LODS的逆过程.REP 当CX/ECX&lt;&gt;0时重复.REPE/REPZ 当ZF&#61;1或⽐较结果相等,且CX/ECX&lt;&gt;0时重复.REPNE/REPNZ 当ZF&#61;0或⽐较结果不相等,且CX/ECX&lt;&gt;0时重复.REPC 当CF&#61;1且CX/ECX&lt;&gt;0时重复.REPNC 当CF&#61;0且CX/ECX&lt;&gt;0时重复.五、程序转移指令1. ⽆条件转移指令 (长转移)JMP ⽆条件转移指令CALL 过程调⽤RET/RETF 过程返回.2. 条件转移指令 (短转移,-128到&#43;127的距离内)( 当且仅当(SF XOR OF)&#61;1时,OP1&lt;OP2 )JA/JNBE 不⼩于或不等于时转移.JAE/JNB ⼤于或等于转移.JB/JNAE ⼩于转移.JBE/JNA ⼩于或等于转移.以上四条,测试⽆符号整数运算的结果(标志C和Z).JG/JNLE ⼤于转移.JGE/JNL ⼤于或等于转移.JL/JNGE ⼩于转移.JLE/JNG ⼩于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ 等于转移.JNE/JNZ 不等于时转移.JC 有进位时转移.JNC ⽆进位时转移.JNO 不溢出时转移.JNP/JPO 奇偶性为奇数时转移.JNS 符号位为 &#34;0&#34; 时转移.JO 溢出转移.JP/JPE 奇偶性为偶数时转移.JS 符号位为 &#34;1&#34; 时转移.3. 循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z&#61;1时循环.LOOPNE/LOOPNZ CX不为零且标志Z&#61;0时循环.JCXZ CX为零时转移.JECXZ ECX为零时转移.4. 中断指令INT 中断指令INTO 溢出中断IRET 中断返回5. 处理器控制指令HLT 处理器暂停, 直到出现中断或复位信号才继续.WAIT 当芯⽚引线TEST为⾼电平时使CPU进⼊等待状态.ESC 转换到外处理器.LOCK 封锁总线.NOP 空操作.STC 置进位标志位.CLC 清进位标志位.CMC 进位标志取反.STD 置⽅向标志位.CLD 清⽅向标志位.STI 置中断允许位.CLI 清中断允许位.六、伪指令DW 定义字(2字节).PROC 定义过程.ENDP 过程结束.SEGMENT 定义段.ASSUME 建⽴段寄存器寻址.ENDS 段结束.END 程序结束.七、处理机控制指令&#xff1a;标志处理指令CMC 进位位求反指令STC 进位位置为1指令CLD ⽅向标志置1指令STD ⽅向标志位置1指令CLI 中断标志置0指令STI 中断标志置1指令NOP ⽆操作HLT 停机WAIT 等待ESC 换码LOCK 封锁浮点运算指令集1、控制指令(带9B的控制指令前缀F变为FN时浮点不检查,机器码去掉9B)FINIT 初始化浮点部件机器码 9B DB E3FCLEX 清除异常机器码 9B DB E2FDISI 浮点检查禁⽌中断机器码 9B DB E1FENI 浮点检查禁⽌中断⼆机器码 9B DB E0WAIT 同步CPU和FPU 机器码 9BFWAIT 同步CPU和FPU 机器码 D9 D0FNOP ⽆操作机器码 DA E9FXCH 交换ST(0)和ST(1) 机器码 D9 C9FXCH ST(i) 交换ST(0)和ST(i) 机器码 D9 C1iiiFSTSW ax 状态字到ax 机器码 9B DF E0FSTSW word ptr mem 状态字到mem 机器码 9B DD mm111mmmFLDCW word ptr mem mem到状态字机器码 D9 mm101mmmFSTCW word ptr mem 控制字到mem 机器码 9B D9 mm111mmmFLDENV word ptr mem mem到全环境机器码 D9 mm100mmmFSTENV word ptr mem 全环境到mem 机器码 9B D9 mm110mmmFRSTOR word ptr mem mem到FPU状态机器码 DD mm100mmmFSAVE word ptr mem FPU状态到mem 机器码 9B DD mm110mmmFFREE ST(i) 标志ST(i)未使⽤机器码 DD C0iiiFDECSTP 减少栈指针1-&gt;0 2-&gt;1 机器码 D9 F6FINCSTP 增加栈指针0-&gt;1 1-&gt;2 机器码 D9 F7FSETPM 浮点设置保护机器码 DB E42、数据传送指令FLDZ 将0.0装⼊ST(0) 机器码 D9 EEFLD1 将1.0装⼊ST(0) 机器码 D9 E8FLDPI 将π装⼊ST(0) 机器码 D9 EBFLDL2T 将ln10/ln2装⼊ST(0) 机器码 D9 E9FLDL2E 将1/ln2装⼊ST(0) 机器码 D9 EAFLDLG2 将ln2/ln10装⼊ST(0) 机器码 D9 ECFLDLN2 将ln2装⼊ST(0) 机器码 D9 EDFLD real4 ptr mem 装⼊mem的单精度浮点数机器码 D9 mm000mmmFLD real8 ptr mem 装⼊mem的双精度浮点数机器码 DD mm000mmmFLD real10 ptr mem 装⼊mem的⼗字节浮点数机器码 DB mm101mmmFILD word ptr mem 装⼊mem的⼆字节整数机器码 DF mm000mmmFILD dword ptr mem 装⼊mem的四字节整数机器码 DB mm000mmmFILD qword ptr mem 装⼊mem的⼋字节整数机器码 DF mm101mmmFBLD tbyte ptr mem 装⼊mem的⼗字节BCD数机器码 DF mm100mmmFST real4 ptr mem 保存单精度浮点数到mem 机器码 D9 mm010mmmFST real8 ptr mem 保存双精度浮点数到mem 机器码 DD mm010mmmFIST word ptr mem 保存⼆字节整数到mem 机器码 DF mm010mmmFIST dword ptr mem 保存四字节整数到mem 机器码 DB mm010mmmFSTP real4 ptr mem 保存单精度浮点数到mem并出栈机器码 D9 mm011mmmFSTP real8 ptr mem 保存双精度浮点数到mem并出栈机器码 DD mm011mmmFSTP real10 ptr mem 保存⼗字节浮点数到mem并出栈机器码 DB mm111mmmFISTP word ptr mem 保存⼆字节整数到mem并出栈机器码 DF mm011mmmFISTP dword ptr mem 保存四字节整数到mem并出栈机器码 DB mm011mmmFISTP qword ptr mem 保存⼋字节整数到mem并出栈机器码 DF mm111mmmFBSTP tbyte ptr mem 保存⼗字节BCD数到mem并出栈机器码 DF mm110mmmFCMOVB ST(0),ST(i) &lt;时传送机器码 DA C0iiiFCMOVBE ST(0),ST(i) &lt;&#61;时传送机器码 DA D0iiiFCMOVE ST(0),ST(i) &#61;时传送机器码 DA C1iiiFCMOVNB ST(0),ST(i) &gt;&#61;时传送机器码 DB C0iiiFCMOVNBE ST(0),ST(i) &gt;时传送机器码 DB D0iiiFCMOVNE ST(0),ST(i) !&#61;时传送机器码 DB C1iiiFCMOVNU ST(0),ST(i) 有序时传送机器码 DB D1iiiFCMOVU ST(0),ST(i) ⽆序时传送机器码 DA D1iii3、⽐较指令FCOM ST(0)-ST(1) 机器码 D8 D1FCOMI ST(0),ST(i) ST(0)-ST(1) 机器码 DB F0iiiFCOMIP ST(0),ST(i) ST(0)-ST(1)并出栈机器码 DF F0iiiFCOM real4 ptr mem ST(0)-实数mem 机器码 D8 mm010mmmFCOM real8 ptr mem ST(0)-实数mem 机器码 DC mm010mmmFICOM word ptr mem ST(0)-整数mem 机器码 DE mm010mmmFICOM dword ptr mem ST(0)-整数mem 机器码 DA mm010mmmFICOMP word ptr mem ST(0)-整数mem并出栈机器码 DE mm011mmmFICOMP dword ptr mem ST(0)-整数mem并出栈机器码 DA mm011mmmFTST ST(0)-0 机器码 D9 E4FUCOM ST(i) ST(0)-ST(i) 机器码 DD E0iiiFUCOMP ST(i) ST(0)-ST(i)并出栈机器码 DD E1iiiFUCOMPP ST(0)-ST(1)并⼆次出栈机器码 DA E9FXAM ST(0)规格类型机器码 D9 E54、运算指令FADD 把⽬的操作数 (直接接在指令后的变量或堆栈缓存器) 与来源操作数 (接在⽬的操作数后的变量或堆栈缓存器) 相加&#xff0c;并将结果存⼊⽬的操作数FADDP ST(i),ST 这个指令是使⽬的操作数加上 ST 缓存器&#xff0c;并弹出 ST 缓存器&#xff0c;⽽⽬的操作数必须是堆栈缓存器的其中之⼀&#xff0c;最后不管⽬的操作数为何&#xff0c;经弹出⼀次后&#xff0c;⽬的操作数会变成上⼀个堆栈缓存器了FIADD FIADD 是把 ST 加上来源操作数&#xff0c;然后再存⼊ ST 缓存器&#xff0c;来源操作数必须是字组整数或短整数形态的变数FSUB 减FSUBPFSUBR 减数与被减数互换FSUBRPFISUBFISUBRFMUL 乘FMULPFIMULFDIV 除FDIVPFDIVRFDIVRPFIDIVFIDIVRFCHS 改变 ST 的正负值FABS 把 ST 之值取出&#xff0c;取其绝对值后再存回去。

02 第4章 PLC基本指令及其应用(1-2)

02 第4章 PLC基本指令及其应用(1-2)
13
七、 基本逻辑指令举例
例1.简单的报警电路
控制系统中,若设备发生故障,则应及时报警,最常 用的报警方式是报警灯。当故障信号产生时,报警灯 应呈闪烁状态。 梯形图: I/O分配: I0.3 M 1.0 输入: ( R ) 1 报警信号开关S1:I0.0 I0.0 M 1.0 ( S ) 系统复位按钮:I0.3 1 M1.0 SM0.5 输出:故障报警灯:Q0.0 Q 0.0
2
一、 触点指令
10.立即触点指令
立即触点指令采用中断工作方式,将输入口的状态 立即读入PLC,不受扫描周期的影响。只能用于输 入继电器I。
LDI AI OI LDNI ANI ONI
I
/I
表示开始、串联和并联一常开立即触点
表示开始、串联和并联一常闭立即触点
3
二、 输出指令
1.输出指令: =
2.立即输出指令
LAD:
编号
I0.0 IN PT
类型
使能输入端
Tn
TONR ?ms
TON TOF TONR
1ms 10ms 100ms
设定值 1~32767
STL: TONR Tn, PT
时基
22
2.工作过程
① 当输入端(IN)接通时,定时器开始计时,当 输入端IN断开时,定时器保持当前值不变。 ② 当使能输入端IN再次接通时,则定时器当前值 在原保持值基础上再往上加计数。 ③ 当定时器的当前值大于等于设定值(PT)时, 定时器状态位置“1”;但定时器当前值继续增加, 一直增至最大值32767 。 ④ 以后既使输入端再断开,定时器也不会复位, TONR定时器需用复位指令R进行复位,复位后 定时器当前值清零,定时器位为OFF 。 用于对许多间隔的累计定时

plc控制伺服常用指令和程序段总结

plc控制伺服常用指令和程序段总结

plc控制伺服常用指令和程序段总结在工业自动化领域,PLC(可编程逻辑控制器)常用于控制伺服系统,以实现精确的运动控制。

PLC控制伺服系统的指令和程序段在传递运动命令、监测反馈信号和保护伺服系统方面起到至关重要的作用。

以下是对PLC控制伺服常用指令和程序段的总结。

1. 伺服控制指令:- 位置控制指令:用于将伺服系统定位到特定位置。

常用的指令包括MOVE、MOVEL、MOVES等,可以实现绝对位置控制和相对位置控制。

- 速度控制指令:用于调节伺服系统的运动速度。

常用的指令包括SPEED、ACCELERATE、DECELERATE等,可以实现平稳的速度控制。

- 力矩控制指令:用于调节伺服系统的输出力矩。

常用的指令包括TORQUE、GAIN等,可以实现精确的力矩控制。

2. 伺服控制程序段:- 位置控制程序段:在程序中定义伺服系统的目标位置,并根据反馈信号调节输出信号,使伺服系统准确到达目标位置。

程序段包括位置控制指令、位置误差计算和PID控制算法等。

- 速度控制程序段:在程序中定义伺服系统的目标速度,并根据反馈信号调节输出信号,使伺服系统保持平稳的运动速度。

程序段包括速度控制指令、速度误差计算和速度环控制算法等。

- 力矩控制程序段:在程序中定义伺服系统的目标力矩,并根据反馈信号调节输出信号,使伺服系统输出所需的力矩。

程序段包括力矩控制指令、力矩误差计算和力矩环控制算法等。

通过合理使用PLC控制伺服系统的指令和程序段,可以实现对运动的精确控制和保护。

在实际应用中,还需根据具体的控制要求和系统特点进行参数调整和优化,以获得最佳的控制效果。

总结:PLC控制伺服系统常用的指令包括位置控制指令、速度控制指令和力矩控制指令,而程序段则包括位置控制程序段、速度控制程序段和力矩控制程序段。

合理运用这些指令和程序段,可以实现精确的运动控制和保护。

汇编语言试题及参考答案1

汇编语言试题及参考答案1

汇编1一、单项选择题(每小题1分,共10分)1、十进制数269变换为十六进制数是(C)。

(A)10B (B)10C (C)10D (D)10E2、指令mov 100[si][bp],ax目标操作数的隐含段为(B )。

(A)数据段(B)堆栈段(C)代码段(D)附加段3、以下语句汇编后,CENTH的值是(C )buf1 dw 8,19,buf2 db 6,'abc$',10 dup('5'),CENTH equ buf2—buf1A.14B.8C.4D.174、若栈顶物理地址为20100H,当执行完指令PUSH AX后,栈顶的物理地址为(D)。

(A)20102H (B)20101H (C)200FFH (D)200FEH5、执行下列指令后,正确的结果是(B)。

MOV AL,100。

MOV BL,-2(A)AL=100H,BL=02H (B)AL=64H,BL=0FEH(C)AL=64H,BL=82H (D)AL=100H,BL=0FEH6、假定AX的内容为-32768,在执行了指令NEG AH后,标志位(SF,OF)为(D )。

(A)0,0 (B)0,1 (C)1,0 (D)1,17、设AL=0B4H,BL=11H,指令“MUL BL”和指令“IMUL BL”分别执行后OF,CF的值为(B)。

(A)OF=1,CF=0 (B)OF=1,CF=1 (C)OF=0,CF=0 (D)OF=0,CF=18、当A≥B时转移的条件转移指令为(A,B为带符号数)(D )。

(A)JA (B)JAE (C)JG (D)JGE9、完成将累加器AL清零,并使进位标志CF清零,下面错误的指令是(A )。

(A)MOV AL,00H (B)AND AL,00H (C)XOR AL,AL (D)SUB AL,AL10、已知CALL BX执行前SP=100H,执行后SP的内容为(D)。

(A)100H (B)102H (C)98H (D)0FEH二、填空题(每空1分,共10分)1、(00101011)B+(13)D+(1B)H=(123 )Q2、IBM PC机内存容量最大为(1M )B,要寻找这样大的空间,需要()根地址线。

西门子PLC编程学习之移位循环指令(科普篇)

西门子PLC编程学习之移位循环指令(科普篇)

西门⼦PLC编程学习之移位循环指令(科普篇)
引⾔
移位操作指令:前世今⽣,它属于汇编语⾔逻辑指令中的⼀部分,它包括移位指令(含算术移
位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三⼤
类。

其功能为将⽬的操作数的所有位按操作符规定的⽅式移动1位或按寄存器CL规定的次数
(0~255)移动,结果送⼊⽬的地址。

⽬的操作数是8位(或16位)的寄存器数据或存储器数
据。

⼀、指令简介
1.1SHR右移
1.2 SHL左移
1.3 ROR:循环右移
1.4 ROL:循环左移
⼆、实验编程
2.1 SHR右移 & SHL左移
程序编写:插⼊相关指令
建⽴监控变量表
测试程序记录结果
右移空出位置填充1,左移空出位置填充0
2.2 ROR:循环右移 & ROL:循环左移
程序编写
变量监控表建⽴
测试程序记录结果
⽆空位填充问题。

7--控制转移类指令

7--控制转移类指令

例1:
0000H 0002H 0004H 0006H ┇
例2:
EB B0 B3 B1
04 01 02 03
jmp mov mov next:
short next al, 1 bl, 2 mov cl, 3 ┇
0000H B0 0002H B3 0004H B1 0006H EB 0008H B2 ┇
操作: 如果不满足测试条件cc,则该指令不作任何操作。 如果满足测试条件cc,则 (IP)←(IP)+ 8位位移量 其中的8位位移量由机器指令代码提供,其大小由汇编程序按下式计 算得出。 位移量 = 目标地址 - 当前IP值(Jcc指令的下一条指令的地址) 说明: (1)测试条件不同,指令助记符也各不相同,具体见下表所示。
(一)无条件转移指令
(1)段内转移 在同一代码段的范围内进行的转移称为段内转移。此时,CPU只需要修 改IP寄存器的内容。 1)段内直接短转移 格式: JMP SHORT 标号 ;标号表示转移目标地址。 功能: 无条件地转移到由标号所指定的转移目标地址处。 操作: (IP)←(IP)+ 8位位移量 ;8位位移量由汇编程序按照下式计 算得出,并存放在机器指令代码中。 8位位移量 = 转移目标地址 - 当前IP值(JMP指令的下一条指令的地址) 说明: ① 8位位移量是带符号数,因此跳转的范围为( -128 --- +127 )。 ② 指令中的转移目标地址用相对于当前IP所指向指令的相对位移量来 表示,因此属于相对转移。
01 02 03 F8 04
next:
mov mov mov jmp mov
al, 1 bl, 2 cl, 3 short next dl, 4 ┇
2)段内直接近转移

欧姆龙PLC编程手册(中文)07

欧姆龙PLC编程手册(中文)07

CPM2AH CPU单元
最多可以连接3个扩展单元,包括扩展I/O单元
CPM1A-20EDR1
CPM1A-20EDT
CPM1A-AD041
扩展
扩展 I/O单元
4模拟量
4路模拟量输入
注: 1.CPM1A/CPM2A最多只可以连1台CPM1A-AD041和1台其它的扩展单元或扩 展I/O单元。
项目 输入点数 输入信号范围
MOV 指令
写入量程控制字 读出转换数据
模拟量输入单元
通道(n+1) 通道(n+2) 通道(m+1) 通道(m+2) 通道(m+3) 通道(m+4)
量程控制字
模拟量输入1 转换数据
模拟量输入2 转换数据 模拟量输入3 转换数据
模拟量输入4 转换数据
‘m’为分配给CPU单元或前一个扩展单元或扩展I/O 单元的最后一个输入通道,‘n’为分配给CPU单元或 前一个扩展单元或扩展I/O单元的最后一个输出通道
2.一旦设定好量程控制字,在CPU单元上电期间不能再改变设定。如需改 变设定,必须将CPU单元断电后重新上电。
3.对于不使用的输入,将输入通道设置为OFF,并且将电压输入端子VIN 和COM短路。
模拟输入设备的配线 CPM1A-AD041端子排列
IN
CH
I IN1 V IN2 COM2 I IN3 V IN4 COM4 AG
189C(6300) 1770(6000)
0000(0)
-0.25 V
0V
FED4(-300)
5 V 5.25 V
1~5 V
1~5V的电压输入对应于十六进制数0000~1770(0000~6000)。完整的数据输出范围是FED4~189C (-300~6300)。输入电压在0.8到1V之间时使用补码来表示转换数据。如果输入的电压小于0.8V时,断线检测功 能将被激活并且转换的数据为8000。

转移指令及位操作指令

转移指令及位操作指令
的数据传递。 例:MOV C,P1.0 ;将P1.0的状态送给
C。 MOV P1.0,C ;将C中的状态送到P1.0 ;引脚上去。
2 位变量修改指令(4条)
位清0指令 : CLR C CLR bit 例:CLR P1.0 ;即使P1.0变为0 位置1指令: SETB C SETB bit 例:SETB P1.0 ;使P.0变为1 位取反指令: CPL C CPL bit
MOV A, M1 CJNE A, M2,LOOP LOOP: JNC LOOP1 MOV A,M2 LOOP1:MOV MAX,A
例2:已知外部RAM以2000H开始有一个数 据缓冲区,该缓冲区中数据以回车符 (ASCII码为0DH)为结束标志,试编一 程序把正数送入片内RAM以30H为起始地 址的正数区,把负数送入片内RAM以50H 为起始地址的负数区。(假设输入数据不 超过32个)
控制转移指令
无条件转移指令:
单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。您的内容已经简明扼要,字 字珠玑,但信息却千丝万缕、错综复杂,需要用更多的文字来表述;但请您尽可能提炼思想的精髓,否则容易造成观者的阅读压 力,适得其反。正如我们都希望改变世界,希望给别人带去光明,但更多时候我们只需要播下一颗种子,自然有微风吹拂,雨露 滋养。恰如其分地表达观点,往往事半功倍。当您的内容到达这个限度时,或许已经不纯粹作用于演示,极大可能运用于阅读领 域;无论是传播观点、知识分享还是汇报工作,内容的详尽固然重要,但请一定注意信息框架的清晰,这样才能使内容层次分明, 页面简洁易读。如果您的内容确实非常重要又难以精简,也请使用分段处理,对内容进行简单的梳理和提炼,这样会使逻辑框架 相对清晰。
添加标题

三菱plc常用的指令详解

三菱plc常用的指令详解

以下是三菱plc常用的指令,还有不懂的可以问我一程序流程控制指令—FNC00~0900 CJ 条件转移01 CALL 子程序调用02 SRET 子程序返回03 IRET 中断返回04 EI 开中断05 DI 关中断06 FEND 主程序结束07 WDT 监控定时器刷新08 FOR 循环开始09 NEXT 循环结束二传送、比较指令—FNC10~19 BIN----二进制BCD----十进制10 CMP 比较11 ZCP 区间比较12 MOV 传送13 SMOV BCD码移位传送14 CML 取反传送15 BMOV 数据块传送(n点→n点)16 FMOV 多点传送(1点→n点)17 XCH 数据交换,(D0)←→(D2)18 BCD BCD变换,BIN→BCD19 BIN BIN变换,BCD→BIN三算术、逻辑运算指令—FNC20~29 BIN----二进制BCD----十进制20 ADD BIN加法21 SUB BIN减法22 MUL BIN乘法23 DIV BIN除法24 INC BIN加一25 DEC BIN减一26 W AND 字与27 WOR 字或28 WXOR 字异或29 NEG 求BIN补码四循环、移位指令—FNC30~3930 ROR 循环右移31 ROL 循环左移32 RCR 带进位循环右移33 RCL 带进位循环左移34 SFTR 位右移35 SFTL 位左移36 WSFR 字右移37 WSFL 字左移38 SFWR FIFO写入39 SFRD FIFO读出五数据处理指令—FNC40~4940 ZRST 区间复位41 DECO 解码42 ENCO 编码43 SUM 求置ON位总数44 BON ON位判别45 MEAN 求平均值46 ANS 信号报警器标志置位47 ANR 信号报警器标志复位48 SQR BIN平方根49 FLT BIN整数→BIN浮点数六高速处理指令—FNC50~5950 REF 输入输出刷新51 REFF 输入滤波时间常数调整52 MTR 矩阵输入53 HSCS 高速记数器比较置位54 HSCR 高速记数器比较复位55 HSZ 高速记数器区间比较56 SPD 速度检测57 PLSY 脉冲输出58 PWM 脉冲宽度调制59 PLSR 带加减速功能的脉冲输出七方便指令—FNC60~6960 IST 状态初始化61 SER 数据搜索62 ABSD 绝对值凸轮顺控63 INCD 增量凸轮顺控64 TTMR 示教定时器65 STMR 专用定时器—可定义66 ALT 交替输出67 RAMP 斜坡输出68 ROTC 旋转工作台控制69 SORT 数据排序八外部I/O设备指令—FNC70~7970 TKY 10键输入71 HKY 16键输入72 DSW 拨码开关输入73 SEGD 七段译码74 SEGL 带锁存的七段码显示75 ARWS 方向开关76 ASC ASCII码转换77 PR 打印输出78 FROM 读特殊功能模块79 TO 写特殊功能模块九外围设备指令—FNC80~8980 RS RS-232C串行通讯81 PRUN 并行运行82 ASCI 十六进制→ASCII83 HEX ASCII→十六进制84 CCD 校验码85 VRRD 电位器读入86 VRSC 电位器设定88 PID PID控制十F2外部模块指令—FNC90~9990 MNET F-16N, Mini网91 ANRD F2-6A, 模拟量输入92 ANW* *2-6*, 模拟量输出93 RMST F2-32RM, 启动RM94 RMWR F2-32RM, 写RM95 RMRD F2-32RM, 读RM96 RMMN F2-32RM, 监控RM97 BLK F2-30GM, 指定块98 MCDE F2-30GM, 机器码十一浮点数运算指令—FNC110~132110 ECMP BIN浮点数比较111 EZCP BIN浮点数区间比较118 EBCD BIN浮点数→BCD浮点数119 EBIN BCD浮点数→BIN浮点数120 EADD BIN浮点数加法121 ESUB BIN浮点数减法122 EMUL BIN浮点数乘法123 EDIV BIN浮点数除法127 ESQR BIN浮点数开方129 INT BIN浮点数→BIN整数130 SIN BIN浮点数正弦函数(SIN)131 COS BIN浮点数余弦函数(COS)132 TAN BIN浮点数正切函数(TAN)十二交换指令—FNC147147 SW AP 高低字节交换十三定位指令—FNC155~159155 ABS 读当前绝对值位置156 ZRN 返回原点157 PLSY 变速脉冲输出158 DRVI 增量式单速位置控制159 DRV A 绝对式单速位置控制十四时钟运算指令—FNC160~169160 TCMP 时钟数据比较161 TZCP 时钟数据区间比较162 TADD 时钟数据加法163 TSUB 时钟数据减法166 TRD 时钟数据读出167 TWR 时钟数据写入169 HOUR 小时定时器十五变换指令—FNC170~177170 GRY 二进制数→格雷码171 GBIN 格雷码→二进制数176 RD3A 读FXon-3A模拟量模块177 WR3A 写FXon-3A模拟量模块十六触点比较指令—FNC224~246224 LD= (S1)=(S2)时运算开始之触点接通225 LD> (S1)>(S2)时运算开始之触点接通226 LD< (S1)<(S2)时运算开始之触点接通228 LD<> (S1)≠(S2)时运算开始之触点接通229 LD≤ (S1)≤(S2)时运算开始之触点接通230 LD≥ (S1)≥(S2)时运算开始之触点接通232 AND= (S1)=(S2)时串联触点接通233 AND> (S1)>(S2)时串联触点接通234 AND< (S1)<(S2)时串联触点接通236 AND<> (S1)≠(S2)时串联触点接通237 AND≤ (S1)≤(S2)时串联触点接通238 AND≥ (S1)≥(S2)时串联触点接通240 OR= (S1)=(S2)时并联触点接通241 OR> (S1)>(S2)时并联触点接通242 OR< (S1)<(S2)时并联触点接通244 OR<> (S1)≠(S2)时并联触点接通245 OR≤ (S1)≤(S2)时并联触点接通246 OR≥ (S1)≥(S2)时并联触点接通提问人的追问2011-04-13 14:16楼主三菱PLC 编程手册目录第一章FX1N PLC编程简介1.1 FX1N PLC 简介 (1)1.1.1 FX1N PLC 的提出 (1)1.1.2 FX1N PLC 的特点 (1)1.1.3 FX1N PLC 产品举例 (1)1.1.4 关于本手册 (1)1.2 编程简介 (1)1.2.1 指令集简介 (2)1.2.2 资源集简介 (7)1.2.3 编程及应用简介 (9)第二章基本逻辑指令说明及应用2.1 基本逻辑指令一览表 (10)2.1 [LD],[LDI],[LDP],[LDF],[OUT]指令 (10)2.2.1 指令解说 (10)2.2.2 编程示例 (10)2.3[AND],[ANI],[ANDP],[NDF]指令 (11)2.3.1 指令解说 (11)2.3.2 编程示例 (12)2.4 [OR],[ORI],[ORP],[ORF]指令 (13)2.4.1 指令解说 (13)2.4.2 编程示例 (13)2.5 [ANB],[ORB]指令 (14)2.5.1 指令解说 (14)2.5.2 编程示例 (14)2.6 [INV]指令 (15)2.6.1 指令解说 (15)2.6.2 编程示例 (15)2.7 [PLS],[PLF]指令 (16)2.7.1 指令解说 (16)2.7.2 编程示例 (17)2.8 [SET],[RST]指令 (17)2.8.1 指令解说 (17)2.8.2 编程示例 (18)2.9 [NOP],[END]指令 (18)2.9.1 指令解说 (18)2.9.2 编程示例 (18)2.10 [MPS],[MRD],[MPP] 指令 (18)2.10.1 指令解说 (18)2.10.2 编程示例 (19)2.11[MC],[MCR]指令 (21)2.11.1指令解说 (21)2.11.2 编程示例 (21)第三章步进顺控指令说明及应用3.1步进顺控指令说明 (22)3.1.1 指令解 (22)3.1.2 编程示例 (25)3.2 步进顺控指令应用 (25)3.2.1 单一流程示例 (25)3.2.2 选择性分支与汇合示例 (26)3.2.3 并行分支与汇合示例 (27)3.2.4 循环和跳转示例 (29)第四章功能指令说明及应用4.1 功能指令一览表 (31)4.2 程序流程 (33)4.2.1 条件跳转[CJ] (33)4.2.2 子程序调用[CALL] (35)4.2.3 子程序返回[SRET] (35)4.2.4 主程序结束[FEND] (36)4.2.5 循环范围开始[FOR] (37)4.2.6 循环范围结束「NEXT] (37)4.3 传送与比较 (38)4.3.1 比较指令[CMP] (39)4.3.2 区域比较[ZCP] (40)4.3.3 传送指令[MOV] (41)4.3.4 反向传送[CML] (43)4.3.5 BCD 转换[BCD] (44)4.3.6 BIN 转换[BIN] (45)4.4 四则逻辑运算 (46)4.4.1 BIN 加法运算[ADD] (46)4.4.2 BIN 减法运算[SUB] (47)4.4.3 BIN 乘法运算[MUL] (48)4.4.4 BIN 除法运算[DIV] (49)4.4.5 BIN 1 [INC]................................... .. (50)4.4.6 BIN 减1 [DEC] (50)4.4.7 逻辑与[WAND] (51)4.4.8 逻辑或[WOR] (51)4.4.9 逻辑异或[WXOR] (52)4.4.10 求补[NEG] (53)4.4.11 BIN 开方运算[SQR] (53)4.5 循环与移位 (54)4.5.1 循环右移[ROR] (54)4.5.2 循环左移[ROL] (55)4.5.3带进位循环右移[RCR] .............................................. (56)4.5.4 带进位循环左移[RCL] (58)4.6 浮点数运算 (59)4.6.1 二进制浮点数比较「DECMP] (59)4.6.2二进制浮点数区域比较[DEZCP] (60)4.6.3 二进制浮点数转十进制浮点数[DEBCD] (61)4.6.3 十进制浮点数转二进制浮点数[DEBIN] (62)4.6.5 二进制浮点数加法[DEADD] (62)4.6.6 二进制浮点数减法[DESUB] (63)4.6.7 二进制浮点数乘法「DEMUL] (64)4.6.8 二进制浮点数除法「DEDIV] (65)4.6.9 二进制浮点数开方「DESQR] (66)4.6.10 二进制浮点数转BIN 整数变换「INT] (67)4.6.11 BIN 整数转二进制浮点数「FLT] (68)4.7 触点比较指令 (69)4.7.1 接点比较指令「LD※] (69)4.7.2 接点比较指令「AND※] (70)4.7.3接点比较指令「OR※] (72)4.8 功能指令的基本规则 (73)4.8.1 .功能指令的表示与执行形式................................ . (73)4.8.2 功能指令内的数值处理 (75)4.8.3 利用变址寄存器的操作数修改 (77)第五章资源说明及应用5.1 变址寄存器V 、Z 说明及应用 (80)5.1.1 变址寄存器V 、Z 说明 (80)5.1.2 变址寄存器在梯形图中的应用 (80)5.1.3 使用变址功能的注意事项 (81)5.2 输入输出继电器X 、Y 说明及应用 (82)5.2.1 输入输出继电器X 、Y 说明 (82)5.2.2输入输出继电器应用 (83)5.3 辅助中间继电器M 说明及应用 (85)5.3.1 辅助中间继电器M 说明 (85)5.3.2 辅助中间继电器M 应用 (85)5.4 状杰继申器S 说明及应用 (87)5.4.1 状态继电器S 说明 (87)5.4.2 状态继电器S 应用 (88)5.5 定时器T 说明及应用 (88)5.5.1 定时器T 说明 (88)5.5.2 定时器T 应用 (90)5.6计数器C 说明及应用 (92)5.6.1 16 bit 计数器C 说明 (92)5.6.2 32 bit 计数器C 说明 (93)5.6.3 16 bit 计数器C 应用 (95)5.6.4 32 bit 计数器应用 (96)5.7数据寄存器D 说明及应用 (97)5.7.1 数据寄存器D 说明 (97)5.7.2 数据寄存器D 应用 (99)5.8程序位置指针P 说明及应用 (100)5.8.1 程序位置指针P 说明 (100)5.8.2 程序位置指针P 应用 (100)5.9常数标记K 、H 详细说明 (102)5.9.1 常数标记K (102)5.9.2 常数标记H (103)5.10 特殊软元件说明 (103)第六章PID指令说明及应用6.1 PID 运算 (104)6.1.1 (104)6.1.2 应用示例 (110)第一章FX1N PLC 编程简介1.1 FX1N PLC 简介1.1.1 FX1N PLC 的提出基于以下观点,提出FX1N PLC 的概念:①、软件和硬件独立设计。

4-7控制转移指令

4-7控制转移指令

控制转移类指令控制转移类指令⏹转移指令☐无条件转移指令JMP☐条件转移指令J*◆JC、JNC、JE/JZ、JNE/JNZ (单标志)◆JA/JNBE、JAE/JNB、JB/JNAE、JBE/JNA (无符号数)◆JG/JNLE、JGE/JNL、JL/JNGE、JLE/JNG (有符号数)◆JO、JNO、JNP/JPO、JP/JPE、JNS、JS (位条件)⏹循环控制指令☐LOOP、LOOPE/LOOPZ、LOOPNE/LOOPNZ、JCXZ⏹过程调用☐CALL、RET无条件转移指令JMP☐段内直接转移;◆JMP 1000H☐段内间接转移;◆JMP CX☐段间直接转移;◆JMP 2000H:0100H☐段间间接转移◆JMP DWORD PTR [SI]调用指令CALL☐段内直接调用;◆CALL 1000H☐段内间接调用;◆CALL BX☐段间直接调用;◆CALL 2000H:0100H☐段间间接调用◆CALL DWORD PTR [DI]调用返回指令RET返回高一层的程序,通常与CALL成对使用CALLRET条件转移指令⏹条件转移指令特点:☐都是相对转移形式的转移范围为-128~+127,好处是指令字节少,执行速度快,需要转移到更远的目标,可以使用中间跳板;☐根据比较结果决定是否转移,但注意无符号数和有符号数区分;☐大部分转移指令有两种不同的助记符循环控制指令LOOP将CX的内容减1,CX如不为0,则继续循环,为0,则退出循环。

MOV CX,0100H;设置循环次数KKK:……;此处为循环体其他代码LOOP KKK;CX减1,如不为0则循环有条件循环控制指令⏹LOOPZ/LOOPE☐将CX减1,如CX≠0且ZF=1,则继续循环;如CX=0,或ZF=0,则退出循环⏹LOOPNZ/LOOPNE☐将CX减1,如CX≠0且ZF=0,则继续循环;如CX=0,或ZF=1,则退出循环控制转移类指令JCXZ与LOOP指令类似,差别在于JCXZ指令不对CX寄存器内容操作,只根据CX内容控制转移,当CX=0时,转移至标号所指代码程序员需要在程序中执行CX的增减(通常为INC或DEC)。

的指令系统三yk控制转移指令

的指令系统三yk控制转移指令

字符输出的功能调用
显示器功能调用INT 10H
功能号: AH=0EH 入口参数:AL=字符的ASCII码
BL=字符的颜色值(图形方式) BH=页号(字符方式) 通常使BX=0 功能:将字符按原属性在光标处显示,光标 自动移到下一个字符位置
字符串输出的功能调用
DOS功能调用INT 21H
“1”的个数是偶是奇
例题2.41
⑸JC/JB/JNAE和JNC/JNB/JAE:利用进位标志CF,判
断结果是否进位或借位
例题2.42
比较无符号数高低
无符号数的大小用高(Above)低(Below)表 示
利用CF确定高低、利用ZF标志确定相等 (Equal)
两数的高低分成4种关系: ⑴ 低于(不高于等于):JB(JNAE) ⑵ 不低于(高于等于):JNB(JAE) ⑶ 低于等于(不高于):JBE(JNA) ⑷ 不低于等于(高于):JNBE(JA )
INT i8
;中断调用指令:产生i8号中断
IRET
;中断返回指令:实现中断返回
INTO
;溢出中断指令: ;若溢出标志OF=1,产生4号中断 ;否则顺序执行
2.4.6 系统功能调用
21H号中断是DOS提供给用户的用于调用系统 功能的中断,它有近百个功能供用户选择使用, 主要包括设备管理、目录管理和文件管理三个方 面的功能 ROM-BIOS也以中断服务程序的形式,向程 序员提供系统的基本输入输出程序
CALL far ptr mem ;段间调用、间接寻址
CALL指令需要保存返回地址:
段内调用——入栈偏移地址IP SP←SP-2,SS:[SP]←IP
段间调用——入栈偏移地址IP和段地址CS SP←SP-2,SS:[SP]←IP SP←SP-2,SS:[SP]←CS

控制传送指令

控制传送指令

② 以CX的值为0作为转移条件
助记符 转移条件
JCXZ
CX=0
25
③以两个无符号数比较的结果作为转移条件
助记符 转移条件
JA/JNBE
JAE/JNB/JNC JB/JNAE/JC JBE/JNA
占有两个字节。
16
段内间接转移: (CS)不变,只改变(IP)
格式:JMP WORD PTR OPR OPR —为16位寄存器、
或存储器(除立即数以外的任何一种寻址方式)
执行操作: (IP) (EA) 或(IP) (reg16) 指令格式举例: JMP AX JMP TABLE [BX] JMP ALPHA_WORD JMP SI ; 操作数已定义为16位存储器 ;操作数已定义为16位存储器
五.控制传送指令(Control transfer instructions)
(一)、控制传送指令概述
控制传送指令包括四种: 转移指令,循环控制指令,过程调用指令,中断指令。
1、转移指令
转移指令包括两种: (1)、JMP(Jump) 无条件转移指令 (2)、Jcc 条件转移指令
1
(1)、 JMP(Jump)无条件转移指令 转移分成两类:段内或段间转移。 无条件转移指令有五种格式:
格式:JMP SHORT OPR
执行操作:(IP)←(IP)当前+D8
SHORT 短属性标号 8位位移量D8的范围在(-128 ~ 127)之间,占有一个字节。 而指令本身占有两个字节。
13
例如:代码段内有一条无条件转移指令在汇编语言中使用符号地址。 JMP SHORT NEXT指令执行过程: NEXT—在汇编语言中使用符号地址 (IP)←(IP)当前+D8

三菱PLC步进指令SFC编程方法功能指令表.

三菱PLC步进指令SFC编程方法功能指令表.

3、使用STL指令的状态寄存器的常开触点称为STL触点。
它有三个功能:①对负载的驱动处理,②指定转换条件,③指 定转换目标(见图6-1所示)。
驱动处理 S0 Y0 驱动处理 LD
S0
X0
Y0
转换条件
STL
S0
OUT Y0
S1 转换目标
SET S1
X0 转换目标 转换条件
LD
SET
X0
S1
图 6-1 STL 指令与顺序功能图
以转换为中心,与 转换实现的规则严 格对应。思路清晰, 容易理解。用它设 计复杂系统的梯形 图特别方面。
FX2N系列可编程控制器的基本指令27种,列表如下:
1 2 3 4 5 6
7 8 9 10 11 12 (接下页)
(接上页)
13 14 15 16 17 18
20 21 22 23 24 25 26
PLC步进指令SFC编 程方法.功能指令表
各种编程方法的比较
步进指令 通用性
适用于FX系列 PLC
启保停
所有的机型
以转换为中心
适用于具有置位、 复位指令的PLC
程序长度 较短
以STL触点为中 心,它们与左母 线相连,前级步 其它方面 的复位是自动完 成的。
相差不大 以代表步的编 程元件为中心,器中断用指针用于需要指定中断时间执行中断子程 序或需要不受PLC扫描周期影响的循环中断处理控制程序。 例如I625表示每隔25ms就执行标号为1625后面的中断程序一 次.在中断返回指令IRET处返回。 (3)计数器中断用指针 计数器中断用指针根据可编程控制器内部的高速计数器 的比较结果,执行中断子程序。用于优先控制利用高速计数 器的计数结果。该指针的中断动作要与高速计数比较置位指 令HSCS组合使用。

fx2n移位指令实例

fx2n移位指令实例

fx2n移位指令实例FX2N移位指令是Mitsubishi Electric公司推出的一种PLC(可编程逻辑控制器)指令,它可以实现数据的左移和右移操作。

这个指令在工业控制系统中非常常用,它可以帮助工程师们实现各种复杂的位操作。

在工业自动化领域中,位操作是非常重要的一项技术。

比如,在一些需要对输入信号进行处理的场合,我们经常需要对信号进行位操作,以提取出我们所关注的某个位的信息。

FX2N移位指令就是为了方便工程师们进行这种位操作而设计的。

FX2N移位指令可以实现两种基本的位操作:左移和右移。

左移是将数据的每一位都向左移动一位,右移则是将数据的每一位都向右移动一位。

这两种操作都可以通过FX2N移位指令来实现。

FX2N移位指令的具体操作方法如下:1. 首先,我们需要准备一个要进行移位操作的数据,可以是一个变量,也可以是一个寄存器。

2. 然后,我们需要指定移位的方向和移位的位数。

移位的方向可以是向左移位,也可以是向右移位;移位的位数可以是一个常数,也可以是一个变量。

3. 最后,我们需要指定移位后的结果存放的位置,可以是一个变量,也可以是一个寄存器。

FX2N移位指令的执行过程非常简单,它只需要按照上述步骤进行操作即可。

通过FX2N移位指令,工程师们可以实现各种复杂的位操作,从而更好地满足工业控制系统的需求。

FX2N移位指令是一种非常实用的PLC指令,它可以帮助工程师们实现各种复杂的位操作。

无论是在工业自动化领域还是其他领域,FX2N移位指令都能发挥重要的作用。

希望通过本文的介绍,读者们能够对FX2N移位指令有更深入的了解,并能够灵活运用它来解决实际问题。

任务6.4 FX2N系列 PLC循环与移位指令

任务6.4  FX2N系列 PLC循环与移位指令
数据总是从D2读出,指针D1为0时,FIFO堆栈被读空,不再执行上述处理, 零标志M8020为ON。
一、循环移位指令
19:04
任务6.4 FX2N系列循环与移位指令
19:04
一、循环移位指令
【例】按1-2相激磁方式控制一个四相步进电动机。可正反转控制,每步为1s。电动机运 行时,指示灯亮。四相步进电动机的1-2相激磁方式波形和程序如图所示。
任务6.4 FX2N系列循环与移位指令
19:04
二、带进位的循环移位指令
指令 名称
指令 编号
操作数
助记符
S(可变址) D(可变址) n1
n2
指令步数
位右移 FNC34(16) SFTR(P) 位左移 FNC35(16) SFTL(P)
X,Y,M,S
Y,M,S
K,H n2≤n1≤1024
SFTR, SFTRP:9步 SFTL, SFTLP:9步
任务6.4 FX2N系列循环与移位指令
任务6.4 FX2N系列循环与移位指令
19:04
三、位左/右移指令
位右移指令SFTR(Shift Right)的功能编号为FNC34,该指令使位元件中的状态成组地 向右移动,由n1指定位元件的长度,n2指定移动的位数,一般n2≤n1≤1024。
位左移指令SFTL(Shift Left)的功能编号为FNC35,该指令使位元件中的状态成组地 向左移动,由n1指定位元件的长度,n2指定移动的位数,一般n2≤n1≤1024。
操作数
D(可变址)
n
KnY,KnM,KnS T,C,D,V,Z
KnY,KnM,KnS T,C,D,V,Z
K,H n≤16(32)
K,H n≤16(32)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例5.7:记录空格个数
mov cx,count ;设置循环次数 mov si,offset string xor bx,bx ;bx清0,用于记录空格数 mov al,20h cmp al, [si] jnz next ;ZF=0,非空格,转移 inc bx ;ZF=1,是空格,个数加1 inc si loop again ;字符个数减1,不为0继续循环
;转移到again处继续执行
;标号again的指令
;转向output ;标号output的指令
第2章
段内转移、间接寻址
;IP←r16/m16
JMP
JMP r16/m16
将一个16位寄存器或主存字单元内容送入IP寄存器,
作为新的指令指针,但不修改CS寄存器的内容
jmp ax jmp word ptr [2000h]
存储器或寄存器 ;IP←AX
;IP←[2000h]
第2章
段间转移、直接寻址
JMP
JMP far ptr label
;IP←label的偏移地址 ;CS←label的段地址
将标号所在段的段地址作为新的CS值,标号在该段内
的偏移地址作为新的IP值;这样,程序跳转到新的代码段 标号 执行 jmp far ptr otherseg ;远转移到代码段2的otherseg
第2章
目标地址的范围:段内
JMP
段内转移——近转移(near) 在 当 前 代 码 段 64KB 范 围 内 转 移 ( ±32KB范围) 不需要更改CS段地址,只要改变IP偏 移地址
段内转移——短转移(short) 转移范围可以用一个字节表达,在段 内-128~+127范围的转移
mov cx,100 again: movsb ;传送一个字节 dec cx ;传送次数减1 jnz again ;判断传送次数cx是否为0 ;不为0(ZF=0),则转移;否则,结束 mov cx,100 again: jcxz next movsb dec cx jmp again next: ...
第2章
段间转移、间接寻址
JMP
JMP far ptr mem ;IP←[mem],CS←[mem+2]
用一个双字存储单元表示要跳转的目标地址。这个目标
地址存放在主存中连续的两个字单元中的,低位字送IP寄 存器,高位字送CS寄存器
存储器
mov word ptr [bx],0 mov word ptr [bx+2],1500h JMP far ptr [bx] ;转移到1500h:0
外部中断——来自CPU之外的原因引起的中
断,又可以分成

可屏蔽中断:可由CPU的中断允许标志IF控制 非屏蔽中断:不受CPU的中断允许标志IF控制
第2章
8086的内部中断
内部中断——CPU内部执行程序引起的中断,
又可以分成:

除法错中断:执行除法指令,结果溢出产生的 0 号中断
again:
next:
dec cx jnz again
第2章
计数器CX为0转移(循环指令)
JCXZ label ;CX=0,发生转移:IP←IP+8位位移量 ;CX≠0,顺序执行
这是一条较特殊的指令 CX寄存器通常在程序中用做计数器 JCXZ指令用来判断计数是否为0
第2章
判断计数器为0
教学提示
在学习和应用汇编语言进行 程序设计时,有一些经常遇 到的问题,例如算术运算、 代码转换等,需要掌握
第2章
五、控制转移类指令
过程等程序结构,是仅次于传送指令的 最常用指令,有 条,包括:

控制转移类指令用于实现分支、循环、
无条件转移指令 条件转移指令 循环指令 子程序调用、返回指令
第2章
2、条件转移指令
Jcc
Jcc label ;条件满足,发生转移:IP←IP+8位位移量 ;条件不满足,顺序执行
指定的条件cc如果成立,程序转移到由标号label指
定的目标地址去执行指令;条件不成立,则程序将 顺序执行下一条指令
操作数label是采用短转移,称为相对寻址方式
第2章
条件转移的寻址方式
Jcc
这组指令单独判断5个状态标志之一
⑴JZ/JE和JNZ/JNE:利用零标志ZF,判断结果是否 为零(或相等) 例题1
⑵JS和JNS:利用符号标志SF,判断结果是正是负 例题2 ⑶JO和JNO:利用溢出标志OF,判断结果是否产生 例题3 溢出 ⑷JP/JPE和JNP/JPO:利用奇偶标志PF,判断结果 中“1”的个数是偶是奇 例题4 ⑸JC/JB/JNAE和JNC/JNB/JAE:利用进位标志CF, 例题5 判断结果是否进位或借位
这个特点使得程序可以方便地废除若干执
行CALL指令以前入栈的参数
例5.8:子程序
;主程序
... ;子程序:将AL低4位的一位16进制数转换成ASCII码
mov al,0fh call htoasc
;提供参数AL ;调用子程序
转换原理
htoasc: and al,0fh or al,30h cmp al,39h jbe htoend add al,7 htoend: ret
(Equal)
两数的高低分成4种关系:
⑴ 低于(不高于等于):JB(JNAE)
⑵ 不低于(高于等于):JNB(JAE)
⑶ 低于等于(不高于):JBE(JNA) ⑷ 不低于等于(高于):JNBE(JA )
一般与哪些指令配合使用?
例5.6a:比较无符号数
cmp ax,bx jnb next xchg ax,bx ... ;比较ax和bx ;若ax≥bx,转移 ;若ax<bx,交换
移地址)
JMP指令分成4种类型:
⑴ 段内转移、直接寻址
⑵ 段内转移、间接寻址 ⑶ 段间转移、直接寻址
⑷ 段间转移、间接寻址
第2章
目标地址的寻址方式
用标号表达
JMP
直接寻址方式

转移地址象立即数一样,直接在指令的 机器代码中,就是直接寻址方式
用寄存器或存储器 操作数表达
间接寻址方式

转移地址在寄存器或主存单元中,就是 通过寄存器或存储器的间接寻址方式
;判断传送次数cx是否为0 cmp cx,0 jz next
第2章
4、子程序指令
子程序是完成特定功能的一段程序 当主程序(调用程序)需要执行这个功能时,
采用CALL调用指令转移到该子程序的起始 处执行
当运行完子程序功能后,采用RET返回指令
回到主程序继续执行 演示
第2章
子程序调用指令
第2章 JMP label
段内转移、直接寻址 实际为相对寻址 JMP
;IP←IP+位移量
位移量是紧接着JMP指令后的那条指令的偏移地址到
目标指令偏移地址的地址位移
标号 当向地址增大方向转移时,位移量为正;向地址减小
方向转移时,位移量为负
again: output: jmp …… dec …… jmp …… mov again cx output result,al
⑷ 不小于等于(大于):JNLE(JG )
例5.6b:比较有符号数
cmp ax,bx jnl next xchg ax,bx ... ;比较ax和bx ;若ax≥bx,转移 ;若ax<bx,交换
next:
结果:AX保存较大的有符号数
第2章
DEC CX J__ OPR
3、循环指令(loop)
LOOP/LOOPZ(LOOPE) LOOPNZ(LOOPNE)
用指令INT i8,进而学习使用DOS功能调用
第2章
主程序
中断的过程
中断服务程序
中断请求
断点 IRET 中断请求可以来自处理器外部的中断源, 也可以由处理器执行指令引起: 例如执行INT i8指令。
第2章
8086的外部中断
8086可以管理256个中断 各种中断用一个向量编号来区别 主要分成外部中断和内部中断
next:
结果:AX保存较大的无符号数
第2章
⑶比较有符号数大小
Jcc
有符号数的大(Greater)小(Less)需要
组合OF、SF标志,并利用ZF标志确定相等 (Equal)
两数的大小分成4种关系:
⑴ 小于(不大于等于):JL(JNGE) ⑵ 不小于(大于等于):JNL(JGE)
⑶ 小于等于(不大于):JLE(JNG)
行就是当前指令偏移指针IP加2
第2章
Jcc指令的分类
Jcc
Jcc指令不影响标志,但要利用标志。根据
利用的标志位不同,17条指令分成4种情况:
⑴ 判断单个标志位状态
⑵ 比较无符号数高低
⑶ 比较有符号数大小 ⑷ 判断计数器CX为0
特点:都是对flag寄存器的位进行判断
第2章
⑴ 判断单个标志位状态
(i) 循环次数 循环体 (i) (i)-1 (i)=0? N Y
指 令
1) LOOP OPR
测试条件
(CX) ≠0
2) LOOPZ/LOOPE OPR (CX) ≠0 and F=1 3) LOOPNZ/LOOPNE OPR (CX) ≠0 andF=0
执行步骤: (1) (CX) (CX)-1 (2)如满足测试条件,则跳转到指定地址

中断调用指令
控制转移类指令通过改变IP(和CS)值, 实现程序执行顺序的改变
第2章
1、无条件转移指令
JMP
JMP label
;程序转向label标号指定的地址
只要执行无条件转移指令JMP,就使程序转到指定
的目标地址处,从目标地址处开始执行那里的指令
相关文档
最新文档