跳转指令表
三菱FX系列PLC功能指令一览表

三菱FX系列PLC功能指令一览表三菱FX系列PLC功能指令的数据格式1.位元件与字元件象X、Y、M、S等只处理ON/OFF信息的软元件称为位元件;而象T、C、D等处理数值的软元件则称为字元件,一个字元件由16位二进制数组成。
位元件可以通过组合使用,4个位元件为一个单元,通用表示方法是由Kn加起始的软元件号组成,n为单元数。
例如K2 M0表示M0~M7组成两个位元件组(K2表示2个单元),它是一个8位数据,M0为最低位。
如果将16位数据传送到不足16位的位元件组合(n<4)时,只传送低位数据,多出的高位数据不传送,32位数据传送也一样。
在作16位数操作时,参与操作的位元件不足16位时,高位的不足部分均作0处理,这意味着只能处理正数(符号位为0),在作32位数处理时也一样。
被组合的元件首位元件可以任意选择,但为避免混乱,建议采用编号以0结尾的元件,如S10,X0,X20等。
2.数据格式在FX系列PLC内部,数据是以二进制(BIN)补码的形式存储,所有的四则运算都使用二进制数。
二进制补码的最高位为符号位,正数的符号位为0,负数的符号位为1。
FX系列PLC可实现二进制码与BCD码的相互转换。
为更精确地进行运算,可采用浮点数运算。
在FX系列PLC中提供了二进制浮点运算和十进制浮点运算,设有将二进制浮点数与十进制浮点数相互转换的指令。
二进制浮点数采用编号连续的一对数据寄存器表示,例D11和D10组成的32位寄存器中,D10的16位加上D11的低7位共23位为浮点数的尾数,而D11中除最高位的前8位是阶位,最高位是尾数的符号位(0为正,1是负)。
10进制的浮点数也用一对数据寄存器表示,编号小数据寄存器为尾数段,编号大的为指数段,例如使用数据寄存器(D1,D0)时,表示数为10进制浮点数=〔尾数D0〕×10〔指数D1〕其中:D0,D1的最高位是正负符号位。
三菱FX系列PLC功能指令的表示格式早期的PLC大多用于开关量控制,基本指令和步进指令已经能满足控制要求。
跳转指令表

1.无条件转移指令JMP SHORT OPR ---- 段内直接短转移JMP NEAR PTR OPR ---- 段内直接近转移JMP WORD PTR OPR ---- 段内间接转移JMP FAR PTR OPR ---- 段间直接(远)转移JMP DWORD PTR OPR ---- 段间间接转移2.条件转移指令(A)=(B)JZ 、 JE : 标志 Z=1 ----- 结果为零则转移、相等则转移(A)≠(B)JNZ 、JNE : 标志 Z=0 ----- 结果不为零则转移、不相等则转移(A)<(B)无符号数JC 、JB 、JNAE : 标志 C=1 ----- 进位位为1则转移、低于则转移、不高于和不等于则转移(A)≧(B)无符号数JNC 、JNB 、JAE : 标志 C=0 ----- 进位位为0则转移、不低于则转移、高于和等于则转移(A)≦(B)无符号数JBE 、JNA : 标志 C V Z = 1 ---- 低于和等于则转移、不高于则转移;V-- 或操作(A)>(B)无符号数JNBE、JA : 标志 C V Z = 0 ---- 不低于和不等于则转移、高于则转移;V-- 或操作(A)<(B)带符号数JL、LNGE: 标志 S V O = 1 ---- 小于则转移、不大于和不等于则转移;V-- 或操作(A)≧(B)带符号数JNL、JGE: 标志 S V O = 0 ---- 不小于则转移、大于和等于则转移;V-- 或操作(A)≦(B)带符号数JLE、JNG: 标志 ( S ⊕O ) V Z = 1 ---- 小于和等于则转移、不大于则转移 ;⊕--异或(A)>(B)带符号数JNLE、JG : 标志 ( S ⊕O ) V Z = 0 ---- 不小于和不等于则转移、大于则转移 ;⊕--异或JS : 标志 S=1 ----- 结果为负则转移JNS : 标志 S=0 ----- 结果为正则转移JO: 标志O=1 ---- 溢出则转移JNO : 标志O=0 ---- 不溢出则转移JP 、JPE : 标志 P=1 ---- 奇偶性为偶和有奇偶性则转移JNP 、JPO : 标志 P=0 ---- 奇偶性为奇和无奇偶性则转移JCXZ---- CX寄存器的内容为零则转移。
ARM汇编指令列表

ARM汇编伪指令ARM条件码CPSR位[31:24]为条件位域,用f表示;位[23:16]为状态位域,用s表示;位[15:8] 为扩展位域,用x表示;位[7:0] 为控制位域,用c表示;与指令MSR相关关于移位中断向量表APCS寄存器使用约定Load and Store指令LDR R0,[R1] ;将存储器地址为R1的字数据读入寄存器R0。
LDR R0,[R1,R2] ;将存储器地址为R1+R2的字数据读入寄存器R0。
LDR R0,[R1,#8] ;将存储器地址为R1+8的字数据读入寄存器R0。
LDR R0,[R1,R2] !;将存储器地址为R1+R2的字数据读入寄存器R0,并将新地址R1+R2写入R1。
LDR R0,[R1,#8] !;将存储器地址为R1+8的字数据读入寄存器R0,并将新地址 R1+8写入R1。
LDR R0,[R1],R2 ;将存储器地址为R1的字数据读入寄存器R0,并将新地址 R1+R2写入R1。
LDR R0,[R1,R2,LSL#2]!;将存储器地址为R1+R2×4的字数据读入寄存器R0,并将新地址R1+R2×4写入R1。
LDR R0,[R1],R2,LSL#2 ;将存储器地址为R1的字数据读入寄存器R0,并将新地址R1+R2×4写入R1。
LDRB R0,[R1] ;将存储器地址为R1的字节数据读入寄存器 R0,并将R0的高24 位清零。
LDRB R0,[R1,#8] ;将存储器地址为R1+8的字节数据读入寄存器R0,并将 R0的高24位清零。
LDRH R0,[R1] ;将存储器地址为R1的半字数据读入寄存器 R0,并将R0的高16位清零。
LDRH R0,[R1,#8] ;将存储器地址为R1+8的半字数据读入寄存器R0,并将R0 的高16位清零。
LDRH R0,[R1,R2] ;将存储器地址为R1+R2的半字数据读入寄存器R0,并将 R0的高16位清零。
三菱PLC功能指令

8
条件跳转指令及应用
三、条件跳转指令的应用实例
X01 0
X01 0
P8 P9
FNC 00
P8
CJ
手动程序
FNC 00
P9
CJ 自动程序
END
LD X010 P8 CJ P8 自动程序 手动程序 P9 LDI X010 END CJ P9
图8-5 手动/自动转换程序
10
程序控制类指令可以影响程序执行的流向及内容。 对合理安排程序的结构,有效提高程序的功能 ,对实现 某些技巧性运算,都有重要的意义。
2
1、 条件跳转指令及应用
一、条件跳转指令的要素和含义
ቤተ መጻሕፍቲ ባይዱ
表8-1 条件跳转指令要素
指令名 称
条件跳 转
助记 符
CJ CJ(P)
指令代 码位数
FNC00 (16)
操作数
[ D·] P0~P63 P63即 END
16位
16位
V0
Z0
32位
V0 Z0 高位 低位
9
变址寄存 器V、Z 的组合
数据类软元件及存储器组织
举例
软元件的变址
X000
FNC 12 D5V0 MOV
D10Z0
如:当V0=8,Z0=14时,
D(5+8)=D(13);D(10+14)=D(2 4)
则(D13)→(D24)
当V0=9,D(5+9)=D(14),
举例
在 D8000中,存有监视定时器的时间设定值。
它的初始值由系统只读存储器在通电时写入。要改变 时可利用传送指令(FNC12 MOV)写入
M800 2 FNC 12 K250 D800 将监视定时器
avr指令表

SUBI Rd,K 立即数减 ICALL间接调用(128KB) SBC Rd,Rr 带进位减CALL k 长调用(4M)SBCI Rd,K 带进位立即数减 RET子程序返回 SBIW Rd,K 立即数减法 RETI中断返回 AND Rd,Rr 逻辑与CPSE Rd,Rr 比较相等跳行 ANDI Rd,K 直接数逻辑与 CP Rd,Rr 比较OR Rd,Rr 逻辑或CPC Rd,Rr 带进位比较 ORI Rd,K 直接数逻辑或 CPI Rd,K 带直接数比较 EOR Rd,Rr 异或 SBRC Rd,b 寄存器位被清零跳行 COM Rd 取二进制反码 SBRS Rd,b 寄存器位置位跳行 NEG Rd 二进制补码 SBIC P,b I/O 寄存器的位清零跳行 SBR Rd,K 寄存器位置位 SBIS P,b I/O 寄存器的位置位跳行 CBR Rd,K 清除进位标志 BRBS S,k SREG 中的位被置位转移 INC Rd 加 1 BRBC S,k SREG 中的位被清除转移 DEC Rd 减 1 BREQ k 相等转移 TST Rd 测试零或负 BRNE k 不相等转移 CLR Rd 清除寄存器 BRCS k 进位位置位转移 SER Rd 置位寄存器所有位 BRCC k 进位位清除转移 MULRd,Rr 乘法BRSH k 高于等于转ADD Rd,Rr 加法RJMPADC Rd,Rr 带进位加法 IJMP 算术和逻辑指令条件转移指令相对转移(-2K K 2K) 间接跳转(128KB) ADIW Rd,K 直接数加法 JMP k 长跳转(4M) SUB Rd,Rr 减法RCALL k 相对调用(-2K K 2K)寄存器和操作码BRLO k 低于转移(无符号) Rd :寄存器文件中的目的(或源)寄存器 BRMI k 负数转移 Rr : 寄存器文件中的源寄存器 BRPL k 正数转移R :指令执行后的结果 BRGE k 大于或等于转移(带符号) K :常数项或字节数据(8 位) BRLT k 小于转移(有符号) k :程序计数器的常量地址数据 BRHS k 半进位标志置位转移 b :在寄存器文件中或 I/O(3 位)中的位 BRHC k 半进位标志被清除转移 s : 在状态寄存器 (3 位)中的位 BRTS k T 标志被置位转移 X,Y,Z:间接地址寄存器 BRTC k T 标志被清除转移 P :I/O 口地址BRVS k 溢出标志被置位转移 q :直接寻址的偏移(6 位) BRVCk溢出标志被转移清除状态寄存器BRIE k 全局中断被使能转移 SREG: 状态寄存器 S :N ⊕V,符号测试位 BRID k 全局中断被禁止转移C :进位标志位 H :半进位标志位 状态寄存器(SREG)和布尔格式Z :零标志位 N :负数标志位 I T H S V N Z C V :2 的补码溢出指示位 7 6 5 4 3 2 1 0 T :用于 BLD 和 BST 指令传送位 I :全局中断使能禁止标志位标志: =/0/1/-; = 由指令引起的有效标志AVR C 高级语言的效率 执行同功能的程序,8MHzAVR224MHz C51不再有作废的产品; 不需要 5 分钟的紫外线擦除时间; 再也用不着因为掩模而无法入睡了;没有 10 周订货交货时间; 添加新特性易如反掌; 容易调试; 容易在线升级,几秒钟搞定;。
arm指令

一、加减法指令:1、MOV(move):数据传送指令2、MVN(move negative):数据取反传送指令3、ADD(add):加法4、ADC(add with carry):带进位加法5、SUB(subtract):减法6、RSB(reverse subtract):反向减法7、SBC(subtract with carry):带借位的减法SBC{<cond>}{S} <Rd>,<Rn>,<op2> ;Rd=Rn-op2-carry8、RSC(reverse subtract with carry):带借位的反向减法RSC{<cond>}{S} <Rd>,<Rn>,<op3> ;Rd= op3-Rn-!carry二、逻辑指令1、AND:逻辑与2、ORR(logical or):逻辑或3、EOR(exclusive or):逻辑异或4、BIC(bit clear):位清零5、CLZ(count leading zeros):位计数。
CLZ{<cond>} <Rd>,<Rm>;计算存储在Rm寄存器中各位为0的总个数。
三、乘法指令1、MUL(multiply):32位乘法2、MLA(multiply accumulate):32位乘加MLA{<cond>} {S} <Rd>,<Rn>,<op2>,<op3>;3、SMULL(signed multiplication long):64位有符号数乘法SMULL {<cond>}{S} <Rdl>,<Rdh>,<Rn>,<op2>;Rdh Rdl=Rn×op2,结果的高32位存入Rdh,低32位存入Rdl。
关于暴力破解中所用到的汇编指令机器码知识

我们在暴力破解中修改的对象基本上都是条件跳转指令(如JZ、JNZ、JG。
等等)和无条件跳转指令JMP,对于其它地方的修改多数都是改成NOP,所以这里主要讲一下跳转指令对应的机器码。
在80X86 体系的CPU中,成对条件跳转指令(指的是判断条件刚好相反)如下所示:JZ <--> JNZJE <--> JNEJB(JNAE) <--> JNB(JAE)JC <--> JNCJA(JNBE) <--> JNA(JBE)JG(JNLE) <--> JNG(JLE)JL(JNGE) <--> JNL(JGE)JS <--> JNSJP(JPE) <--> JNP(JPO)JO <--> JNO80X86体系CPU中的条件跳转指令分为单字节和双字节指令两种,分别对应8BIT和16BIT跳转;而与条件跳转指令相匹配的无条件跳转指令JMP也有单字节和双字节指令两种,分别对应8BIT和16BIT跳转,当我们需要将条件跳转指令改成相应的无条件跳转指令时,因为要保持修改前后机器码长度的一致性,所以要注意被修改的条件跳转指令是单字节还是双字节指令,从而用相应字节的JMP机器码来代替,下表列出了暴力破解中条件跳转指令的修改方法:8位跳转指令修改方法汇编指令机器码相反汇编指令机器码测试标志位改后的机器码对应汇编指令JZ ???????? JE ???????? 74 XXJNZ ????????JNE ????????75 XX Z = 0 或1EB XX JMP ????????JB ???????? JNAE ???????? 72 XXJNB ????????JAE ????????73 XX C = 0 或1JC ???????? 72 XX JNC ???????? 73 XX C = 0 或1JA ???????? JNBE ???????? 77 XXJNA ????????JBE ????????76 XXZ OR C = 0 或1JG ???????? JNLE ???????? 7F XXJNG ????????JLE ????????7E XX(S XOR O) ORZ = 0 或1JL ???????? JNGE ???????? 7C XXJNL ????????JGE ????????7D XXS XOR O = 0或1JS ???????? 78 XX JNS ???????? 79 XX S = 0 或1JP ???????? JPE ???????? 7A XXJNP ????????JPO ????????7B XX P = 0 或1JO ???????? 70 XX JNO ???????? 71 XX O = 0 或116位跳转指令修改方法汇编指令机器码相反汇编指令机器码测试标志位修改后的机器码对应的汇编指令JZ ???????? JE ???????? 0F 84XXJNZ ????????JNE ????????0F 85 XX Z = 0 或190 EB XXNOPJMP ????????JB ???????? JNAE ???????? 0F 82XXJNB ????????JAE ????????0F 83 XX C = 0 或1JC ???????? 0F 82XXJNC ???????? 0F 83 XX C = 0 或1JA ???????? JNBE ???????? 0F 87XXJNA ????????JBE ????????0F 86 XX Z OR C = 0 或1JG ???????? JNLE ???????? 0F 8FXXJNG ????????JLE ????????0F 8EXX(S XOR O) OR Z= 0 或1JL ???????? JNGE ???????? 0F 8CXXJNL ????????JGE ????????0F 8DXXS XOR O = 0 或1JS ???????? 0F 88XXJNS ???????? 0F 89 XX S = 0 或1JP ???????? JPE ???????? 0F 8AXXJNP ????????JPO ????????0F 8BXXP = 0 或1JO ???????? 0F 80XXJNO ???????? 0F 81 XX O = 0 或1关于跟踪程序时如何在Softice中动态改变条件跳转指令的执行方向:其实这个问题我已经在“破解常见问题/技巧”中仔细讲过,可还是老有人来问,现在再次将相应的Softice列出来!跳转指令测试标志Softice命令JZ、JNZ、JE、JNE Z=0或1 R FL=ZJB、JNB、JAE、JNAE、JC、JNC C=0或1 R FL=CJA、JNBE Z OR C = 0 R FL=+Z 或R FL=+C 或R FL=+Z+C JNA、JBE Z OR C = 1 R FL=-Z-CJG、JNLE (S XOR O)OR Z = 0R FL=+Z 或R FL=+S-O 或RFL=-S+O 或R FL=+S-O+Z 或RFL=-S+-O+ZJNG、JLE (S XOR O)OR Z = 1R FL=+S+O-Z 或R FL=-S-O-ZJGE、JNL S XOR O =R FL=+S-O 或R FL=-S+OJL、JNGE S XOR O =1R FL=+S+O 或R FL=-S-OJS、JNS S=0或1 R FL=SJO、JNO O=0或1 R FL=OJP、JPE、JNP、JPO P=0或1 R FL=P还有一种方法是用鼠标点击寄存器窗口的EIP,然后直接输入目标代码的IP地址就可以了,不过使用这个方法时要小心,否则使程序跑飞就完蛋了!。
欧姆龙PLC指令的列表

CP1H:1指令助记符:装载LD装载非LD NOT与AND与非AND NOT或OR或非OR NOT与装载AND LD或装载OR LD非NOT条件ON UP条件OFF DOWN2指令助记符:输出OUT输出非OUT NOT保持KEEP上升沿微分DIFU下降沿微分DIFD置位SET复位RSET多位置位SETA多位复位RSTA单一位置位SETB单一位复位RSTB 3指令助记符:结束END空操作NOP联锁IL联锁解除ILC多联锁区别保持MILH多联锁区别释放MILR 多联锁解除MILC跳转JMP跳转结束JME条件跳转CJP FOR循环FOR循环终止BREAK 下一个循环NEXT4指令助记符:定时器TIM5编辑指令:数据移位指令,递增/递减指令,四则运算指令,转换指令,逻辑指令,特殊算术指令,表格数据处理指令,数据控制指令。
6指令助记符移位寄存器SFT可逆移位寄存器SFTR字移位WSFT算术左移ASL算术右移ASR循环左移ROL循环右移ROR一个数字左移SLD一个数字右移SRD左移N位NASL双字左移N 位NSLL右移N位NASR双字右移N位NSRL7指令助记符二进制递增++双字二进制递增++L二进制递减--双字二进制递减--LBCD递增++B,双字BCD递增++BL,BCD递减--B,双字BCD递减--BL8指令助记符无进位带符号二进制加法+,无进位带符号双字二进制加法+L,有进位带符号二进制加法+C,有进位带符号双字二进制加法+CL,无进位BCD加法+B,无进位双字BCD加法+BL,有进位BCD加法+BC,有进位双字BCD加法+BCL,无进位带符号二进制减法-无进位带符号双字二进制减法-L,有进位带符号二进制减法-C,有进位带符号双字二进制减法-CL,无进位BCD减法-B,无进位双字BCD减法-BL,有进位BCD减法-BC 有进位双字BCD减法-BCL,带符号二进制乘法*,带符号双字二进制乘法*L,BCD乘法*B,双字BCD乘法*BL,带符号二进制除法/,带符号双字二进制除法/L,BCD除法/B双字BCD除法/BL9指令助记符BCD→二进制BIN,双字BCD→双字二进制BINL,二进制→BCD BCD双字二进制→双字BCD BCDL二进制求补NEG,数据译码MLPX,数据编码DMPX,ASCⅡ转换码ASC,ASCⅡ→HEX HEX10指令助记符逻辑与ANDW,双字逻辑与ANDL,逻辑或ORW,双字逻辑或ORWL,异或XORW双字异或XORL,求补COM,双字求补COML11指令助记符算术处理APR,位计数器BCNT12指令助记符浮点数→16位FIX,浮点数→32位FIXL,16位→浮点数FLT,32位→浮点数FLTL浮点数加法+F,浮点数减法-F,浮点数除法/F,浮点数乘法*F浮点符号比较LD, AND, OR+=FLD, AND, OR+<>FLD, AND, OR+<FLD, AND, OR+<=FLD, AND, OR+>FLD, AND, OR+>=F浮点数→ASCⅡFSTRASCⅡ→浮点数FVAL12指令助记符交换字节SWAP,帧校验和FCS13指令助记符带自调整的PID控制PIDAT,时间比例输出TPO,标度SCL,标度2 SCL2,标度3 SCL3 平均值AVG14指令助记符子程序调用SBS,子程序进入SBN,子程序返回RET,设置中断屏蔽MSKS,清除中断CLI,禁止中断DI,允许中断EI,模式控制INI,高速计数器当前值读取PRV比较表载入CTBL,速度输出SPED,设置脉冲PULS,脉冲输出PLS2,加速度模式ACC 原点搜索ORG,可变占空比系数脉冲PWM15指令助记符步定义STEP,步启动SNXT,I/O刷新IORF,7段译码SDEC,数字开关输入DSW矩阵输入MTR,7段显示输出7SEG发送TXD,接收RXD,日历加法CADD,日历减法CSUB,时钟调整DATE,故障报警FAL 严重故障报警FALS,设置进位STC,清除进位CLC,延长最大循环时间WDT TIMX计数器:CNT,CNTX高速定时器:TIMH,TIMHX1MS定时器:TMHH,TMHHX累计定时器:TTIM,TTIMX长时间定时器:TIML,TIMLX可逆计数器:CNTR,CNTRX定时器/计数器复位:CNR,CNRX16指令助记符输入比较指令(无符号)LD,AND,OR+=LD,AND,OR+<>LD,AND,OR+<LD,AND,OR+<=LD,AND,OR+>LD,AND,OR+>=输入比较指令(双字长,无符号)LD,AND,OR+=+LLD,AND,OR+<>+LLD,AND,OR+<+LLD,AND,OR+<=+LLD,AND,OR+>+LLD,AND,OR+>=+L输入比较指令(带符号)LD,AND,OR+=+SLD,AND,OR+<>+SLD,AND,OR+<+SLD,AND,OR+<=+SLD,AND,OR+>+SLD,AND,OR+>=+S输入比较指令(双字长,带符号)LD,AND,OR+=+SLLD,AND,OR+<>+SLLD,AND,OR+<+SLLD,AND,OR+<=+SLLD,AND,OR+>+SLLD,AND,OR+>=+SL时间比较指令=DT<>DT<DT<=DT>DT>=DT比较CMP,双字比较CMPL,带符号二进制比较CPS,双字长带符号二进制比较CPSL 表格比较TCMP,无符号块比较BCMP,区域范围比较ZCP,双区域范围比较ZCPL17指令助记符传送MOV,双字长传送MOVL,传送非MVN,传送位MOVB,数字传送MOVD多位传送XFRB,块传送XFER,块置位BSET,数据交换XCHG,单字分配DIST数据收集COLL6。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
检测标记位 == 1 == 1 == 0 == 0 == 1 == 0 == 1 == 0 == 1 == 0 == 1 == 1 == 1 == 0 == 0 == 0 == 1 或 ZF == 1 == 1 或 ZF == 1 == 0 或 ZF == 0 == 0 或 ZF == 0 != OF != OF == OF == OF != OF 或 ZF == 1 != OF 或 ZF == 1 == OF 且 ZF == 0 == OF 且 ZF == 0
Hale Waihona Puke 说明 等于0则跳转 相等则跳转 不等于0则跳转 不相等则跳转 符号为负则跳转 符号为正则跳转 “1”的个数为偶数则跳转 “1”的个数为奇数则跳转 溢出则跳转 无溢出则跳转 进位则跳转 小于则跳转 不大于等于则跳转 无进位则跳转 不小于则跳转 大于则跳转 小于等于则跳转 不大于则跳转 不小于等于则跳转 大于则跳转 小于则跳转 不大于等于则跳转 不小于则跳转 不大于等于则跳转 小于等于则跳转 不大于则跳转 不小于等于则跳转 大于则跳转