移位指令想一想:流水灯是市面中运用比较广的一种电子元器件,用不同颜色的流水灯和不同的点亮顺序可以做成各种各样的广告牌,指示灯等等
如果运用单片机控制流水灯的点亮,那应该用什么指令呢
提问:若想图中8个发光二极管循环点亮,应该使用什么指令实现
两种方法:一使用数据传送指令MOV二使用循环移位指令表一移位指令1.左移循环指令RLA功能是累加器A的8位向左循环移位,位7循环移入位0,不影响标志
例一:设(A)=5AH则:执行指令RLA后,(A)=
1011010001011010(A)=0B4H2.带进位位左移循环指令RLCA功能是将累加器A的内容和进位标志位Cy一起向左环移一位,Acc
7移入进位位Cy,Cy移入Acc
0,不影响其它标志
例二:设(A)=5AH且CY=1则:执行指令RLCA后,(A)=
(A)=B5H01011010CY=110110101CY=03.右移循环指令RRA功能是累加器A的内容向右环移一位,Acc
0移入Acc
7,不影响其它标志
例一:设(A)=5AH则:执行指令RRA后,(A)=
00101101(A)=2DH010110104.带进位位右移循环指令RRCA功能是是累加器A的内容和进位标志Cy一起向右环移一位,Acc
0进入Cy,Cy移入Acc
例二:设(A)=5AH且CY=1则:执行指令RRCA后,(A)=
(A)=ADH01011010CY=110101101CY=0补充说明:用移位指令还可以实现算术运算,运用一次"RLA"指令实现无符号数乘2运算,运用一次"RRA"指令实现无符号数除2运算
举例:某已知数存在30H中,试将其乘以4(设积