PLC移位循环指令

article/2025/10/7 7:31:51

PLC移位循环指令

一、移位指令

移位指令包括无符号数移位和有符号数移位。 其中无符号数移位包含字左移指令、字右移指令、 双字左移指令和双字右移指令;有符号数移位包含整数右移指令和双整数右移指令。

1、无符号数移位指令
(1)字左移指令当允许输入EN位为高电平“1”时,将执行字左移指令,将IN端指定的内容送入累加器1低字中,并左移N端指定的位数,然后写入OUT端指定的地址中。
在这里插入图片描述
字左移指令的工作原理:
在这里插入图片描述
如图所示的程序中,当I0.2的状态为“1”时, MW2中的数据读入累加器1低字中,并将累加器1低字的内容左移1位(N=W#16#1),然后再将移位后的内 容写入到MW10中,注意MW2中的内容并没有变化。
在这里插入图片描述
要想在同一个存储字中看到移位的效果,可以将IN和OUT端指定相同的地址,即将移位结果存回被移
位地址空间。
在这里插入图片描述
(2)字右移指令
当允许输入EN的状态为“1”时,将执行字右移指令。
在这里插入图片描述
字右移指令工作原理:
在这里插入图片描述
(3)双字左移指令
双字左移指令是移位对象是32位,当EN端的为 “1”时,CPU将IN端的内容读入累加器1,并将累加器1中的内容整体左移N端指定的位数。移位过程中, 按照高位丢失低位补“0”的原则进行。
在这里插入图片描述

(4)双字右移指令
双字右移指令移位的对象是32位,当EN端的状态 为“1”时,CPU将IN端指定的内容读入累加器1中, 并将累加器1整体右移N端指定的位数,按照低位丢失高位补“0”的原则进行。
在这里插入图片描述
2、有符号数移位指令

(1)整数右移指令
整数右移指令与字和双字移位指令不同。整数只 有右移指令,移位时按照低位丢失,高位补符号位状 态的原则,也就是正数高位补“0”,负数高位补 “1”的原则。
在这里插入图片描述
(整数右移指令工作原理)
在这里插入图片描述
(2)双整数右移指令

双整数右移指令与整数右移类似,双整数移位指令操作对象为32位。
在这里插入图片描述
二、循环指令

循环指令可以操作的存储区、各个端的名称与移位指令相同。但是,移位指令可以使操作对象向单一 方向移位,移出的位大多丢掉;而循环指令可以使操作对象进行循环移位,移出的位不会丢掉,而是放回空出的位上。需要注意的是循环指令的操作对象,其数据类型为DWORD型,是32位的内容。循环指令包含 双字左循环指令和双字右循环指令。

1、双字左循环指令
双字左循环指令的循环移位对象为32位,当EN端的状态为“1”时,将执行指令:CPU将IN端指定的内 容读入累加器1中,然后将累加器1中的内容循环左移N端指定的位数,并写入OUT端指定的地址中。
在这里插入图片描述
双字左循环指令的工作原理:
在这里插入图片描述
2、双字右循环指令

双字右循环指令与双字左循环指令类似,只不 过是使操作对象向右循环移位。

在这里插入图片描述


http://chatgpt.dhexx.cn/article/3XLyEZRb.shtml

相关文章

ARM64体系结构编程3-算数和移位指令

条件操作码 条件标志位描述N负数标志(上一次运算结果为负值)Z零结果标志(上一次运算结果为零)C进位标志(上一次运算结果发生了无符号溢出)V溢出标志(上一次运算结果发生了有符号溢出&#xff0…

逻辑、移位操作与空指令的实现

逻辑、移位操作和空指令的实现 1. 流水线数据相关的问题 流水线上经常会有一些被称为“相关”的情况发生,它使得指令序列中下一条指令无法按照设计的时钟周期执行,这些“相关”会降低流水线的性能。 1.1 流水线相关 流水线中的相关可分为&#xff1a…

汇编移位指令SHR,SAR,SAL/SHL,ROR,ROL,RCR,RCL

目录 逻辑右移SHR 算数右移SAR(重点) 算数/逻辑左移SAL/SHL(完成的操作都一样) 循环右移ROR 循环左移ROL 带进位循环右移RCR 带进位循环左移RCL 总结 例题 一 二 移位指令为双操作数指令,用于将目的的操作数中的二进制数移位。 目…

位移指令实现乘法、除法计算

前言 大家都知道51单片机是有乘法、除法指令的,不管是用C语言还是汇编语言,都是可以直接计算乘法、除法的,我以为,-,*,/ 这些算术运算是单片机的标配,而我公司使用的应广单片机居然没有乘法、除…

微机原理——移位指令

例题 思路 选择移位语句,右移,将AL移出的送入DX左端,将BL移出的送入DX左端。循环八次 MOV AL,01100101B; MOV BL,11011010B; XOR DX,DX;两个值相同,异或结果为0。等效:MOV DX,0 MOV CX,8;count L1: SHR AL,1;逻辑右…

汇编语言---移位指令

移位指令是一组经常使用的指令,包括:算数移位、逻辑移位、双精度移位、循环移位、带进位的循环移位; 移位指令都有一个指定需要移动的二进制位数的操作数,该操作数可以是立即数,也可以是CL的值;在8086中,该操作数只能是1,但是在其后的CPU中,该立即数可以是定义域[1,31]之内的数…

汇编语言——移位指令

基本概念 移位操作指令:移位操作指令是一组经常使用的指令,属于汇编语言逻辑指令中的一部分,它包括移位指令(含算术移位指令、逻辑移位指令),循环移位指令(含带进位的循环移位指令)&…

汇编指令之移位指令

移位指令包括了 算术移位指令、逻辑移位指令、循环移位指令。 格式为:xxx oper1,CL/1 ;移位次数只能是1或者存放在CL里面。 一、算术移位指令 1、算术左移指令SAL 功能:左移一次,最低位补0,最高位送入CF标志位,如图&am…

汇编指令(四)移位指令

学习概要 格式 移位指令主要分四种 一、逻辑移位指令 1.逻辑左移指令SHL 2.逻辑右移指令SHR 3.逻辑移位指令的功能 二、算术移位指令 1.算术左移指令SAL 2.算术右移指令SAR 最高位不变的意思就是,最高位原来是1(0),右移过后…

【大学生软件测试基础】白盒测试 - 语句覆盖 - 03

任务1、依据源代码画出程序流程图; 任务2、根据程序流程图,找出程序的所有执行路径; 任务3、找出能覆盖所有语句的最少路径; 任务4、根据最少路径设计语句覆盖用例; 流程图: 任务2、根据程序流程图&…

修正的判定条件覆盖例题_语句覆盖、判断覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖、修正条件覆盖...

int function(bool a,bool b,boolc){intx; x=0;if(a&&(b||c)){x=1;returnx; } } 1、语句覆盖(SC) 选择足够多的测试数据,使得被测程序中的每条语句至少执行一次。 测试用例:a=T,b=T,c=T 2、判断覆盖(DC) 设计足够的测试用例,使得程序中的每个判定至少都获得一次真值…

语句覆盖,判定覆盖,条件覆盖,条件/判定覆盖,条件组合覆盖,路径覆盖

最近在复习软件测试的考试,每次到白盒测试这里都要为这几种逻辑覆盖方法感到头疼,这次终于决定好好整理出来。 逻辑覆盖是通过对程序逻辑结构的遍历实现程序的覆盖。它是一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通路测试。 根…

软件测试培训之:白盒测试的语句覆盖法和判定覆盖法

白盒测试是相对于黑盒测试而言的,黑盒测试不关注程序内部的实现结构,仅仅是通过向程序进行输入来观察程序的输出对不对;白盒测试就需要关注程序内部的实现结构,对程序的逻辑结构实施相关的测试;那么下面来谈谈语句覆盖法、判定覆盖法和条件覆…

语句覆盖、判定覆盖、条件覆盖 - 白盒笔试题解析

1. 定义 黑盒测试 - 不关注内部结构的测试/基于输入输出的测试 白盒测试 - 基于内部结构的测试 白盒测试的关键: 覆盖度 2. 白盒相关概念 语句覆盖 - 设计一套测试 让被测对象中所有语句得到测试覆盖 判定覆盖 - 设计一套测试 让被测对象中所有判定得到测试覆…

白盒测试用例设计方法(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖、基本路径覆盖)

语句覆盖:每条语句至少执行一次。 判定覆盖:每个判定的所有可能结果至少出现一次。(又称“分支覆盖”) 条件覆盖:每个条件的所有可能结果至少执行一次。 判定/条件覆盖:一个判定中的每个条件的所有可能结果…

白盒测试的逻辑覆盖辨析(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖)

白盒测试逻辑覆盖(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖) 逻辑覆盖测试: 语句覆盖:每条语句至少执行一次判定覆盖:每一判定的每个分支至少执行一次条件覆盖:每一判定中的每个条件&…

白盒测试技术——语句覆盖、判定覆盖、条件覆盖

结合一个例子说: 画出相应的程序流程图,更方便分析: 首先我们要明确一点:测试用例要尽可能少。 1、语句覆盖:被测程序中每个语句至少执行一次 路径:s->a->b->c->d->e A2,B0&a…

语句覆盖、分支覆盖、谓词测试和路径覆盖

目录 语句覆盖分支覆盖(判定覆盖)谓词测试原子谓词覆盖(条件覆盖)分支-谓词覆盖(判定条件覆盖或分支条件覆盖)复合谓词覆盖(条件组合覆盖) 路径覆盖包含关系 语句覆盖 “语句覆盖”是一个比较弱的测试标准…

白盒测试 | 用例设计方法之语句覆盖

语句覆盖,顾名思义就是针对代码语句的嘛。它的含义是我们设计出来的测试用例要保证程序中的每一个语句至少被执行一次。通常语句覆盖被认为是“最弱的覆盖”,原因是它仅仅考虑对代码中的执行语句进行覆盖而没有考虑各种条件和分支,因此在实际…

逻辑覆盖测试(一)语句覆盖

语句覆盖: 设计测试用例时保证程序的每条语句至少执行一次。 简单来说,就是每个语句都覆盖一遍。 例子: 流程图如下: 测试用例如下: x4,z9,第一个if语句执行到了; x4,y7,第二个if语句为true…