正在加载图片...
3.3任务四。利用机做逻辑算 3.3.4相关知识 2、逻辑运算指令应用举例 【例3.9】16位数的算术左移。16位数在内存中低8位存放在M1单元,高8位 存放在M1+1单元。 解:所谓算术左移就是将操作数左移一位,并使最低位补充0,相当于完成16 位数的乘务员操作,故称算术左移。参考程序如下: CLR C 进位CY清零 MOv RI. #M1 ;操作数地址M送RL MOV A,@ RI 低8位数送A RLC A, ;低8位左移,最低位补0 M RIA 低8位左移后,回送M存放 INC 指向16位高8位地址Ml+1 MOVA,@R1;低8位送A RLC A ;高8位带低8位进位左移 MOV RI,A 高8位左移后回送M1+1存放 若要对16位数进行循环移位,则应首先设法把最高位(D15)的值置入CY,然后 再参照以上程序编写即可。利用以后介绍的位操作指令可以很容易地实现将某 位的值置入CY。3.3 任务四 利用单片机做逻辑运算 3.3.4 相关知识 2、逻辑运算指令应用举例 【例3.9】 16位数的算术左移。16位数在内存中低8位存放在M1单元,高8位 存放在M1+1单元。 解:所谓算术左移就是将操作数左移一位,并使最低位补充0,相当于完成 16 位数的乘务员操作,故称算术左移。参考程序如下: CLR C ;进位CY清零 MOV R1,#M1 ;操作数地址M1送R1 MOV A,@ R1 ;低8位数送A RLC A, ;低8位左移,最低位补0 MOV @ R1 ,A ;低8位左移后,回送M1存放 INC R1 ;指向16位高8位地址M1+1 MOV A,@ R1 ;低8位送A RLC A, ;高8位带低8位进位左移 MOV @ R1 ,A ;高8位左移后回送M1+1存放 若要对16位数进行循环移位,则应首先设法把最高位(D15)的值置入CY,然后 再参照以上程序编写即可。利用以后介绍的位操作指令可以很容易地实现将某 一位的值置入CY
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有