精华内容
下载资源
问答
  •  下面便以以下的程序来讲解指令的使用,用I0.2的上升沿来执行移位寄存器指令,那么就是一个扫描周期移一位的,指令中V100.0是移位寄存器的位,I0.3里面存的是0或1的数值,指令指定是移位加的,移位寄存器的长度是4...
  • #资源达人分享计划#
  • 三菱移位指令的应用

    千次阅读 2021-02-05 02:56:53
    我们都知道移位指令的功能是对数据进行左、右移动。有循环移位指令ROR,ROL,RCR和RCL,位移字移指令SFTR,SFTL,WSFR和WSFL,还有移位读写指令SFWR和SFEL。在编写程序中,较为常用的就是POR,ROL,SFTR和SFTL这几个...

    我们都知道移位指令的功能是对数据进行左、右移动。有循环移位指令ROR,ROL,RCR和RCL,位移字移指令SFTR,SFTL,WSFR和WSFL,还有移位读写指令SFWR和SFEL。在编写程序中,较为常用的就是POR,ROL,SFTR和SFTL这几个了,对于这几个指令我们就要掌握一下了。在这里,我们需要注意的一点是,在使用这些指令时最好是使用脉冲执行型指令。因为如果使用连续执行型指令的话,这样每个扫描周期都要执行一次了。

    下面我们便举几个简单的例子来学习一下这几个常用指令。

    1、 要求Y0-Y2三盏灯轮流亮1s,然后一起亮1s,如此反复循环。

    213721849_2_20210122074550989_wm

    下面就分析一下以上的程序。对于Y2Y1Y0,依控制要求,每次其输出应为001,010,100,111,其对应的十六进制数为1247,先将此循环数据送到数据寄存器,再执行循环移位,以1s的速度移位,每次移动4位,最后将数据寄存器中的低四位送到K1Y0,这样在Y3-Y0的输出就会得到其控制要求的输出。

    该要求既可以用循环右移指令,也可以用循环左移指令,其实都是差不多的,只需要改动一点点。只要了解了控制要求,理解了它是如何控制的,就万变不离其宗了。下面便是用循环左移指令编写的程序。

    213721849_3_20210122074551229_wm

    2、控制一组8个灯,当启动时,要求Y7-Y0这8个灯从右到左逐个点亮,全部灯点亮时,再从左到右逐个熄灭,全部灯熄灭后,再从左到右逐个点亮,全部灯点亮时,再从右到左逐个熄灭,如此反复循环。

    213721849_4_20210122074551567_wm

    下面也分析一下以上的程序。定时器T0用于左移和右移的移位信号,定时器T1用于对K1M0的加1计数控制,INCP K1M0则为加1计数器,计数值用K1M0表示,其中M1、M0的计数值用于左右移位的控制。当M1=0,M0=1时为左移逐渐点亮;当M1=1,M0=0时为右移逐渐熄灭;当M0 =1,M1 =1时为右移逐渐点亮;当M0 =0,M1= 0时为左移逐渐熄灭。

    当按下启动按钮时,T1常闭触点闭合,执行一次INCP K1M0指令,K1M0=0001,则M1=0,M0=1,M1常闭触点闭合,执行左移指令SFTL,T0每隔1s发一个脉冲,将M0的1依次左移到Y0-Y7中,依次点亮。T1每隔8s发一个脉冲,执行一次INCP K1M0指令,K1M0=0010,则M1=1,M0=0,M1常开触点闭合,执行右移指令SFTR,T0每隔1s发一个脉冲,将M0的0依次右移到Y7-70中,依次熄灭。以此类推,在此就不赘述了。这样,从而可以达到控制要求。

    展开全文
  • 移位指令

    2021-07-22 01:20:52
    移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位...

    移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令),双精度移位指令三大类。其功能为将目的操作数的所有位按操作符规定的方式移动1位或按寄存器CL规定的次数(0~255)移动,结果送入目的地址。目的操作数是8位(或16位)的寄存器数据或存储器数据。

    中文名

    移位指令

    性    质

    属于汇编语言逻辑指令

    包    括

    移位指令等操作数

    8位

    定    义

    一组经常使用的指令

    目的操作数

    8位(或16位)的寄存器数据或存储器数据

    移位指令简介

    编辑

    语音

    移位指令

    下面将逐一详述。所用到的名词均为汇编语言中一般常用符号。若不懂可暂且当做一个普通名字来理解。

    移位指令详述

    编辑

    语音

    移位指令说明

    一般格式 移位操作符(如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,62H

    SHR AX,1

    当移位数大于1时,需要先将移位数放进CL中然后再进行移位操作。

    如:MOV AL,62H

    MOV CL,4

    SHR 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无定义)。[1]

    移位指令循环移位指令

    循环左移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及其后继机型还可作双字操作。[2]

    移位指令双精度移位指令

    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.[3]

    词条图册

    更多图册

    参考资料

    1.

    逻辑指令

    .道客巴巴[引用日期2016-10-30]

    2.

    循环移位指令

    .豆丁网[引用日期2016-10-30]

    3.

    双精度移位指令

    .经典汇编语言教程[引用日期2016-10-30]

    展开全文
  • 移位寄存器设置移位长度

    千次阅读 2017-11-03 19:58:45
    设地址一共有32位 if(addra1 addra2 //延迟16个单位 else addra2 if(addrb1 addrb2 ...利用rom来进行延迟操作或者移位操作的时候,通过设置延迟放入的地址,移位寄存器来设置延迟的时长。

    设地址一共有32位

    if(addra1 <=15)

    addra2 <= addra1 + 16; //延迟16个单位
    else
    addra2 <= addra1 - 16;
    if(addrb1 <=23)
    addrb2 <= addrb1 + 8; // 延迟8个单位

    else

    addrb2 <= addrb1 - 8;


    利用rom来进行延迟操作或者移位操作的时候,通过设置延迟放入的地址,移位寄存器来设置延迟的时长。


    展开全文
  • 这个电路可以实现LED灯循环点亮,使用了74LS194芯片
  • 巧用移位寄存器指令实现流水线巧用移位寄存器指令实现流水线
  • 如果需要移位的次数大于1时,需要先将移位次数存入CL寄存器中,而移位指令中的CNT写为CL即可。在其他机型中可使用CL和CNT,且CNT的值除可用1外,还可以用8位立即数指定范围从1到31的移位次数。有关OPR和CNT的规定...

    移位指令的详述

    一般格式 移位操作符(如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,62H

    SHR AX,1

    当移位数大于1时,需要先将移位数放进CL中然后再进行移位操作。

    如:MOV AL,62H

    MOV CL,4

    SHR 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.

    汇编语言中的“移位指令”具体的操作是什么

    SHL/SAL一样:逻辑/算术左移,最高位进到CF,最低位补0;

    SHR:逻辑右移,最低位进到CF,最高位补0;

    SAR:算术右移,最低位进到CF,最高位不变;

    ROL:循环左移,最高位进到CF的同时补到最低位;

    ROR:循环右移,最低位进到CF的同时补到最高位;

    RCL:带进位循环左移,最高位进到CF的,同时CF值补到最低位;

    RCR:带进位循环右移,最低位进到CF的,同时CF值补到最高位;

    SHLD:双精度左移,第二个操作数移位到第一个操作数,第一操作数进到CF,和逻辑左移类似,低位移到高位;

    SHRD:双精度左移,第二个操作数移位到第一个操作数,第一操作数进到CF,和逻辑由移类似,高位移到低位;

    这样差不多可以了吧。

    哪些“plc移位指令”的实例

    字节移位指令一共有四个

    循环右移、循环左移、右移、左移

    循环移位指令(左、右)八个位是循环移动的

    也就是说循环左移1位就是向左移动1位 最高位移到最低位处

    循环右移1位相应的位向右移动1位最低位移到最高位

    移位指令是PLC的一条重要指令 ,可用于步进顺序控制 ,利用这种顺序控制方式可实现其它一些控制功能 ,下面举两例说明移位指令的应用。1 循环闪灯程序对八只灯进行循环控制。要求从第一个灯开始间隔 5秒逐个顺序点亮 ,等八只灯全部点亮后又从第一个灯开始间隔 5秒逐个熄灭

    f95620b341fcf557a51e974346e4fe0a.png

    PLC中使用移位指令是如何实现移位动作的

    字节移位指令一共有四个

    循环右移、循环左移、右移、左移

    循环移位指令(左、右)八个位是循环移动的

    也就是说循环左移1位就是向左移动1位 最高位移到最低位处

    循环右移1位相应的位向右移动1位最低位移到最高位

    例如:11000010 》》》循环右移1位》》》01100001

    11000010 》》》循环左移1位》》》10000101

    右移1位:也就是说相应的位都右移1位 最低位消失 最高位补0

    左移1位:也就是说相应的位都左移1位 最高位消失 最低位补0

    例如:11000010》》》左移》》》》》10000100

    11000010》》》右移》》》》》01100001

    代号直接看西门子就是了

    满意请及时加分 谢谢

    汇编移位指令

    DL C

    1011 1001 1

    SHL DL, 1

    DL C

    0111 0010 1

    左移时,右边补零,移出位置于C Flag中,影响O, S, Z, P, C标志位

    DL C

    1011 1001 1

    RCR DL, 1

    DL C

    1101 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都有比网上更详细的说明吧。越码例子多多。

    PLC中使用移位指令是如何实现移位动作的、移位指令,就介绍到这里啦!感谢大家的阅读!希望能够对大家有所帮助!

    展开全文
  • 寄存器移位寄存器(数字电路)

    千次阅读 2021-06-12 22:23:29
    寄存器的功能: 暂时存放计算机的数据或者指令。 基本构成: D触发器 0 时钟上升沿 0 1 1 ...
  • #资源达人分享计划#
  • 详细论述了PLC中移位寄存器的工作原理及编程方法,可以帮助初学者更快掌握利用移位寄存器编写出循序控制程序。
  • 三菱plc移位指令用法详解

    千次阅读 2020-12-29 06:04:27
    三菱plc移位指令用法移位指令都是对无符号数进行的处理,执行时只考虑要移位的存储单元中每一位数字的状态,而不管数字的大小(要么为0,要么为1),本类指令在一个输出点对应多个相对固定状态的情况下有广泛的应用。...
  • 汇编基础之寄存器及汇编指令

    千次阅读 2019-04-24 19:41:04
    博客搬家,原地址:https://langzi989.github.io/2017/10/06/汇编基础之寄存器与简单指令分析/ 参考链接: http://www.cnblogs.com/technology/archive/2010/05/16/1736782.html ... 最近在学...
  • 嵌入式Linux ARM汇编(三)——ARM汇编指令一、ARM汇编语言基本结构AREA Init, CODE,READONLYENTRYStartLDR R0, =0x3FF5000LDR R1, 0xFFSTR R1, [R0]LDR R0, =0x3FF5008LDR R1, 0x01STR R1, [R0]... ... ... ... ... ....
  • 8086汇编寄存器指令汇总

    千次阅读 多人点赞 2018-04-30 23:28:34
    1 寄存器的分类 通用寄存器: ...指令寄存器: ip 标志寄存器: FR 段寄存器: cs,ds,ss,es 2 ax,bx,cx,dx 这四个寄存器存放一般数据,你可以在里面存放任何数据,但是其用途会有不同。 AX
  • 三菱plc移位指令实例详解

    千次阅读 2020-12-19 18:53:07
    移位指令的功能是对数据进行左、右移动。有循环移位指令ROR,ROL,RCR和RCL,位移字移指令SFTR,SFTL,WSFR和WSFL,还有移位读写指令SFWR和SFEL。在编写程序中,较为常用的就是POR,ROL,SFTR和SFTL这几个了,对于这...
  • 基于VHDL移位寄存器程序设计

    千次阅读 2020-04-23 17:43:36
    基于VHDL移位寄存器程序设计 实验目的 (1) 掌握中规模4位移位寄存器逻辑功能及使用方法。 (2) 学会用VHDL语言设计4位移位寄存器。 实验原理 移位寄存器是一个具有移位功能的寄存器,是指寄存器中所存的代码能够在...
  • 寄存器和堆栈寻址的用法:多寄存器寻址:LDMIA,LDMIB,STMIA,STMIB,LDMDA,LDMDB,STMDA,STMDB; 堆栈寻址:LDMFA,LDMFD,STMFA,STMFD,LDMEA,LDMED,STMEA,STMED; 弄清堆栈寻址的SP的变化:LDMFA...
  • 最近汇编学到后面的内容, 越来越... 感觉很不爽, 今天花了大半天把几本关于汇编的书前面的内容又翻了一遍, 结合自己做的笔记, 做了一个简单的整理, 关于寄存器指令的, 以作复习汇编之用. 关于存哪个数据用哪个寄...
  • 程序工程下载:https://download.csdn.net/download/panjinliang066333/19894007
  • 本文转载自:https://blog.csdn.net/richerg85/article/details/27558005SHL、SHR、SAL、SAR: 移位指令 ;SHL(Shift Left): 逻辑左移 ;SHR(Shift Right): 逻辑右移 ;SAL(Shift Arithmetic Left): 算术左移 ;SAR...
  • ARM指令集的移位操作

    千次阅读 2017-05-11 21:07:04
    ARM 微处理器内嵌的桶型移位器(Barrel ... 例如,数据处理指令的第二个操作数为寄存器时,就可以加入移位操作选项对它进行各种移位操作。移位操作包括如下6 种类型, ASL 和 LSL 是等价的,可以自由互换: —
  • 西门子200PLC程序
  • 实验六 移位寄存器及其应用

    千次阅读 2021-05-20 20:37:58
    一、预习要求 1、复习有关寄存器的内容,弄懂移位寄存器工作的基本原理。...寄存器是一种用于寄存在二进制数码或指令的时序逻辑部件,它被广泛地应用于各类数字系统和数字计算机中。其功能是在时钟脉冲的作用
  • 本文给出了一种可用于32位以上CPU执行单元的移位寄存器电路,并针对CISC指令集...采用指令预处理的技术和通过冗余位,能很方便的实现带进位标志 CF移位和设置CF位,并使得每条移位指令的平均执行速度为两个指令周期。
  • 通过一个机械手搬物控制的例子,说明了OMRON C系列P型机中的移位寄存器指令在有关梯形图扫描执行过程中牵涉到的一些时序上的问题。
  • 【C语言知识】关于移位指令的使用

    千次阅读 2019-09-18 20:44:18
    以STM32中寄存器移位为例: //打开GPIOB端口的时钟 *(unsigned int *)0x40021018 |= (1<<(3)); //控制ODR寄存器 *(unsigned int *)0x40010C0C &= ~(1<<0); 这里出现的|= 和 &= ~,是C语言...
  • 工业机器人-四台电机的顺序启动(移位寄存器指令).7z
  • 1、对于与或来说,只有当所有操作数都为真的时候,整个表达式才为真;对于异火来说,当所有操作数都为真...4、作为其他操作的副产品,可以使用shl和shr指令对寄存器或内存空间进行清零操作,不过考虑到移位指令比mov...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,763
精华内容 7,505
关键字:

寄存器移位指令