本文目录一览

1,西门子PLC移位与循环指令怎样应用

移位指令:移位指令可以可以将累加器1的低字或整个累加器的内容进行左移或右移一定的位数。二进制数左移一位相当于将原数值乘以2。右移一位相当于将原数值除以2。 循环指令:循环当指令被使能时,FOR重复执行子程序,直到索引值超过终止值。该指令不向子程序传递参数。 终止循环指令:中断被FOR指令调用的子程序的执行。当指令被使能时,BRK指令离开当前子程序并使控制器返回到FOR指令的下一条指令。

西门子PLC移位与循环指令怎样应用

2,汇编移位指令

RAR,全称:shift arithmetic right。就是算术右移。将目的操作数向右移动指定的位数,目的操作数的低位移入CF,高位用符号(初始的最高位)为填充。如:10101001RAR四位就是11111010,01101010RAR四位就是00000110。 ROR,全称:rotate right。就是循环右移。将目的操作数向右移动指定的位数,移出的位顺序进入高位,最后移出的为进入CF。如:11110101ROR两位就是01111101将最低两位顺序移到的最高两位,其余各位依次右移。 RCl,全称:rotate through carry left。就是带进位循环左移。将目的操作数和CF联合起来向左循环移动指定的位数,最后移出的为进入CF。如:11001010RCL两位(若CF初始为0)就得00110010,此时CF中为1了,相当于把CF一起加入了移动的队列。 一·答案是0010000000010111B,且此时CF中的内容为0. 二·答案为0000010111001100B,且此时CF中的内容为0.
一0010000000010111b 也就是8215 二0000010111001100b 也就是1484 RAR是向右移,最高位还是跟原来的最高位一样 ROR是循环向右移,最右边的位补到最左边的 RCL是将CF也算进去当成是ROL就好了,

汇编移位指令

3,汇编 移位指令 怎么用

DL C1011 1001 1SHL DL, 1DL C0111 0010 1左移时,右边补零,移出位置于C Flag中,影响O, S, Z, P, C标志位DL C1011 1001 1RCR DL, 1DL C1101 1100 1带进位循环右移时,C Flag一起参与移位,C Flag移位至DL最高位,DL最低位移至C Flag,原DL其它位向右移一位。影响O, S, Z, P, C标志位由于以上只移动1位,没有涉及使用CL,所以CL的值就不用考虑了。当使用SHL DL, CL移多位时,相当于多次一位的移动。建议,还是看看书吧。我想书上对SHL, SAL, SHR, SAR, ROL, ROR, RCL, RCR都有比网上更详细的说明吧。越码例子多多。
shrd: 双精度右移指令,只能在80386以上处理器使用,将目的操作数向右移动相应位数,空出来的位由源操作数的低位填充。 格式: shrd 目的操作数,源操作数,移位位数 指令不改变源操作数,源操作数必须为寄存器。 unsigned long eax;//eax寄存器中的值unsigned long edx;//edx寄存器中的值eax=eax>>0x0d;edx=edx<<(0x20-0x0d);eax=eax|edx;

汇编 移位指令 怎么用

4,三菱PLC中移位传送指令是怎样工作的

位右移SFTR与位左移SFTL指令 SFTR,SFTL:连续执行型指令 SFTRP,SFTLP:脉冲执行型指令 位右移SFTR与位左移SFTL指令编程方式如下: SFTRP M0 M20 K16 K4 SFTLP M0 M20 K16 K4 *M0:源位元件起始地址,只能是位元件(X,Y,M,S) *M20:目标位元件起始地址,只能是位元件(Y,M,S) *K16:目标位元件个数,只能是数值 *K4:移动的个数,只能是数值 实例: 假设M0=ON,M1=ON,M2=OFF,M3=ON M20---M23都为ON,M24---M27都为OFF,M28---M31都为ON,M32---M35都为OFF SFTRP M0 M20 K16 K4(M20---M35以四个位为单位向右移动,M20---M23溢出) 执行的结果为: M20---M23都为OFF,M24---M27都为ON,M28---M31都为OFF,M32=ON(等于M0),M33=ON(等于M1),M34=OFF(等于M2),M35=ON(等于M3) SFTLP M0 M20 K16 K4(M20---M35以四个位为单位向左移动,M32---M35溢出) 执行的结果为: M20=ON(等于M0),M21=ON(等于M1),M22=OFF(等于M2),M23=ON(等于M3),M24---M27都为ON,M28---M31都为OFF,M32---M35都为ON

5,pLc移位指令怎么用

移位指令一般用在顺序循环启动的地方,比如KTV外面的灯就是用plc移位循环指令控制的!
有计算机基础知识、或学过汇编语言的,对plc移位指令很好理解。而于上了年纪又无基础者,则须通俗易懂地去解说。 今特把所述内容整理了一下,以供后续参考;目标plc选用台达es2。1.循环移位的概念 1)用绳子将一列珠子串起来,然后将绳子两头系在一起,珠子就可构成一个环;若用手推动珠子,珠子就可以沿着绳子“循环”移动。 若选珠子为16颗、绳子足够长,则可把环拉直,而使珠子排成一排;推动珠子仍可循环,但循环后仍使珠子成为一条直线。若假设这16颗珠子对应16位二进制数,这就相当于plc中的一个数据“字”。 如果能通过某种方法,使“字”中的位像珠子一样移动,那么就是数据位“循环”;实现这种移动的指令,就是循环指令。 2)数据位的移动,与珠子的移动,当然不会完全相同;通常,在做循环移位运算时,会把移动的最末一位记入进位标志m1022。 当进位标志m1022不参与循环时,就称为不带进位,其指令就是不带进位的指令;若进位标志m1022参与循环,就是带进位循环,其指令就是带进位循环指令。2.plc中的循环移位 1)循环右移一位的情况。参见附图1,先使最右边一位(b0位)为1,其余为0。设每次循环右移一位,则移位一次后,“1”就被移出并转移到了b15位。 同时,被移出的最末一位的值,将送到m1022;此处仅移一位,则就是原b0位→m1022。为加深印象,下面结合具体的指令来进行讲解。 2)循环右移4位的情况。参见附图2,首先仍使b0位为1,其余为0。移位一次后,原b0位的“1”,到了b12位。 但附图2的“过程示意”并不准确;因为,数据的位并没有被“移出”在外,而是如串在绳子上的珠子一般,逐位顺序移动的。 此时,m1022的值,是原b3的值,因为它是被最末移出的。3.一个简单示例(ror) 1)右循环移位指令ror。该指令的目标元件www.plcs.cn,可以是字元件、也可以是由位组合成的字,故不妨使用k4m0来进行试验,并通过d0来观察其值(梯形图监控时),程序参见附图3。 plc上电运行时,使m0置1,如附图1的情况;接通一次x0,稍作延时后,m20接通一个脉冲周期,作为移位信号。接通x1,清零k4m0,相当于停止信号。 该程序,用台达wplsoft编程软件编制。2)运行程序,监控梯形图,d0显示为h1(调整为十六进制显示);第一次接通x0,d0显示h8000,说明b15为1,其余为0,与附图1的演示相同。以后依此类推,其运行结果可参见附图4。 第16次移位后,又回到了起始状态,可以继续下一个循环。4.结语 这是一个非常简单的介绍,不知对入门者有无参考作用。其余移位指令,可仿此试验理解。 本件可作为《自学自会plc指令——三菱fx2n编程技术及应用》一书的补充材料。

6,移位指令的详述

一般格式 移位操作符(如SHR) OPR,CNT.其中OPR用除立即数外的任何寻址方式。移位次数由CNT决定,在8086中可以是1或CL,CNT为1时只移一位;如果需要移位的次数大于1时,需要先将移位次数存入CL寄存器中,而移位指令中的CNT写为CL即可。在其他机型中可使用CL和CNT,且CNT的值除可用1外,还可以用8位立即数指定范围从1到31的移位次数。有关OPR和CNT的规定适用于以下所有指令操作。具体格式如下所述。以逻辑右移为例。如:MOV AX,62HSHR AX,1当移位数大于1时,需要先将移位数放进CL中然后再进行移位操作。如:MOV AL,62HMOV CL,4SHR AL,CL条件标志位CF(进位标志) = 移入的数值1 CNT=1时,最高有效位的值发生变化0 CNT=1时,最高有效位的值不变移位指令:SF(符号标志)、ZF(零标志)、PF (奇偶标志)根据移位结果设置,AF(辅助进位标志)无定义循环移位指令:不影响 SF、ZF、PF、AF条件标志位应用于具体的操作数中使用,以下叙述中未详细写明,初学者可不予理会。 SAL(shift arithmetic left) 算术左移格式:SAL OPR,CNT含义: 算术左移SAL把目的操作数的低位向高位移,空出的低位补0.(指将要移位的操作数换成二进制表示方法,如62H为01100010B.移位时只是寻常理解中的将这些二进制位逐个向左或向右移,移走的数根据操作符决定舍弃或者放入空出的位置,空出的位置根据操作符决定补0或者放入移走的数)。SAR(shift arithmetic right) 算术右移格式:SAR OPR,CNT算术右移SAR把目的操作数的高位向低位移,空出的高位用最高位(符号位)填补。如62H二进制表示法为01100010B,最高位为0,无论右移多少位左边都用0补上。如果最高位是1,则都用1补上。注:算术移位指令常用于带符号数*2或/2,受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。 逻辑左移SHL(Shift Logical Left)和逻辑右移SHR(Shift Logical Right)格式:SHL(或SHR) OPR,CNT逻辑左移/右移指令只有它们的移位方向不同,移位后空出的位都补0。注:逻辑移位指令常用于无符号数*2或/2,受影响的标志位:CF、OF、PF、SF和ZF(AF无定义)。 循环左移ROL(Rotate Left)和循环右移ROR(Rotate Right)。格式:ROL(或ROR) OPR,CNT循环左移/右移指令只是移位方向不同,它们移出的位不仅要进入CF,而且还要填补空出的位。可以理解为蛇咬尾巴型循环。带进位的循环左移RCL(Rotate Left Through Carry)和带进位的循环右移RCR(Rotate Right)。格式:RCL(或RCR) OPR, CNT带进位的循环左移/右移指令只有移位的方向不同,它们都用原CF的值填补空出的位,移出的位再进入CF。注:受影响的标志位:CF和OF。以上算术,循环和逻辑移位指令均可以作字或字节的操作,386及其后继机型还可作双字操作。 386及其后继机型可使用本组指令SHLD(shift left double) 双精度左移和SHRD(shift right double) 双精度右移格式:SHLD(或SHRD) DST,REG,CNT这组指令可以取两个字作移位操作而得到一个字的结果,也可以取两个双字作移位操作而得到一个双字的结果。在移位中,作为源操作数的寄存器提供移位值,以补目的操作数因移位引起的空缺,而指令执行完成后,只取目的操作数作为移位的结果,源操作数寄存器则保持指令执行前的值不变。这是一组三操作数指令,其中DST可以用除立即数以外的任一种寻址方式指定字或双字操作数。源操作数则只能使用寄存器方式指定与目的操作数想同长度的字或双字。第三个操作数CNT用来指定移位次数,它可以是一个8位的立即数,也可以是CL,用其内容存放移位计数值。移位计数值的范围为1到31,对于大于31的数,机器则自动取模32的值来取代。如:SHLD EBX,ECX,16指令执行前:(EBX)=12345678H, (ECX)=13572468H,指令执行后:(EBX)=56781357H,(ECX)=13572468H,CF=0.

文章TAG:移位  移位指令  指令  西门子  移位指令  
下一篇