关于单片机中的RLC运算

问题如上
2024-11-20 14:42:28
推荐回答(2个)
回答1:

(1)在6处,之所以选择带进位左移,就是将低位运算的CY结果也一块加上左移,并没有将CY清零啊~
(2)对一个数进行左移,必然会造成最高位溢出的结果,这时候CY当然就是溢出的标志位,你对BDH即10111101做左移,如果存储器有9位的话,本来应该是101111010,即17AH,但是存储器只有8位,溢出的最高位1只能由CY来标志,当然7AH要加上CY的1才是BDH的二倍。

回答2:

本程序,可以实现 30H31H 中十六位数的乘2的运算。

在6处,你不想执行7,却要去执行别的程序?

那么,在别的程序中,应该对C加以保护;
执行完毕别的程序后,再恢复C的内容。

之后再执行7。

这就是:保护现场、恢复现场。
这是编程时,常用的方法。
----
对 BDH 进行 RLC?

BDH,最高位是1,乘以2后,A,里面存不下。

对 BDH 进行乘以2,就应该使用16位数的乘以2。
用上面的程序,即可对 BDH 进行乘以2。