XiamenUniversity电气控制实践训练MOOC课程团队11.1移位循环指令2017.2.27厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队一、移位指令移位指令包括无符号数移位和有符号数移位。其中无符号数移位包含字左移指令、字右移指令、双字左移指令和双字右移指令;有符号数移位包含整数右移指令和双整数右移指令。厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队1、无符号数移位指令(1)字左移指令当允许输入EN位为高电平“1”时,将执行字左移指令,将IN端指定的内容送入累加器1低字中,并左移N端指定的位数,然后写入OUT端指定的地址中。LAD参数数据类型说明存储区ENBOOL允许输入I、Q、M、D、LENOBOOL允许输出INWORD16位移位对象NWORD移动的位数OUTWORD16位移动操作结果厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队字左移指令的工作原理厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队如图所示的程序中,当I0.2的状态为“1”时,MW2中的数据读入累加器1低字中,并将累加器1低字的内容左移1位(N=W#16#1),然后再将移位后的内容写入到MW10中,注意MW2中的内容并没有变化。厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队要想在同一个存储字中看到移位的效果,可以将IN和OUT端指定相同的地址,即将移位结果存回被移位地址空间。厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队(2)字右移指令当允许输入EN的状态为“1”时,将执行字右移指令。LAD参数数据类型说明存储区ENBOOL允许输入I、Q、M、D、LENOBOOL允许输出INWORD16位移位对象NWORD移动的位数OUTWORD16位移动操作结果厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队字右移指令工作原理:厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队(3)双字左移指令双字左移指令是移位对象是32位,当EN端的为“1”时,CPU将IN端的内容读入累加器1,并将累加器1中的内容整体左移N端指定的位数。移位过程中,按照高位丢失低位补“0”的原则进行。LAD参数数据类型说明存储区ENBOOL允许输入I、Q、M、D、LENOBOOL允许输出INDWORD32位移位对象NWORD移动的位数OUTDWORD32位移动操作结果厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队(4)双字右移指令双字右移指令移位的对象是32位,当EN端的状态为“1”时,CPU将IN端指定的内容读入累加器1中,并将累加器1整体右移N端指定的位数,按照低位丢失高位补“0”的原则进行。LAD参数数据类型说明存储区ENBOOL允许输入I、Q、M、D、LENOBOOL允许输出INDWORD32位移位对象NWORD移动的位数OUTDWORD32位移动操作结果厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队2、有符号数移位指令(1)整数右移指令整数右移指令与字和双字移位指令不同。整数只有右移指令,移位时按照低位丢失,高位补符号位状态的原则,也就是正数高位补“0”,负数高位补“1”的原则。厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队LAD参数数据类型说明存储区ENBOOL允许输入I、Q、M、D、LENOBOOL允许输出ININT16位移位对象NWORD移动的位数OUTINT16位移动操作结果厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队整数右移指令工作原理:厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队(2)双整数右移指令双整数右移指令与整数右移类似,双整数移位指令操作对象为32位。LAD参数数据类型说明存储区ENBOOL允许输入I、Q、M、D、LENOBOOL允许输出INDINT32位移位对象NWORD移动的位数OUTDINT32位移动操作结果厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队二、循环指令循环指令可以操作的存储区、各个端的名称与移位指令相同。但是,移位指令可以使操作对象向单一方向移位,移出的位大多丢掉;而循环指令可以使操作对象进行循环移位,移出的位不会丢掉,而是放回空出的位上。需要注意的是循环指令的操作对象,其数据类型为DWORD型,是32位的内容。循环指令包含双字左循环指令和双字右循环指令。厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队1、双字左循环指令双字左循环指令的循环移位对象为32位,当EN端的状态为“1”时,将执行指令:CPU将IN端指定的内容读入累加器1中,然后将累加器1中的内容循环左移N端指定的位数,并写入OUT端指定的地址中。LAD参数数据类型说明存储区ENBOOL允许输入I、Q、M、D、LENOBOOL允许输出INDWORD32位移位对象NWORD移动的位数OUTDWORD32位移动操作结果厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队双字左循环指令的工作原理:厦门大学物理与机电工程学院电气控制实践训练MOOC课程团队2、双字右循环指令双字右循环指令与双字左循环指令类似,只不过是使操作对象向右循环移位。LAD参数数据类型说明存储区ENBOOL允许输入I、Q、M、D、LENOBOOL允许输出INDWORD32位移位对象NWORD移动的位数OUTDWORD32位移动操作结果XiamenUniversity电气控制实践训练MOOC课程团队