引用
引用楼主留言 :
我到现在还是有点迷糊,为什么Z0=0时m0接通,z=1时m0和m1接通,z=2时m0,m1和m2接通等等,INCP Z0是给寄存器内数据加一,那INCP K4M0Z0 是给什么加一呢,有点笨,麻烦说得详细点, 谢谢
呵呵,不能说笨,只是一时没有转过弯来。
Z0是变址寄存器,INCP Z0每执行一次,Z0内容加1,这个已经理解。
同样地,INCP K4M0Z0,将K4M0Z0看成一个(由位元件组成的)数据寄存器,执行一次该条指令,则K4M0Z0的内容加1。
若K4M0Z0中的Z0保持不变,例如为0,则K4M0Z0就是K4M0Z0=K4M(0+0)=K4M0,那么K4M0Z0内容加1、就是K4M0内容加1,这个也可以理解。
现在的问题是,K4M0Z0中的Z0,每次都是变化的;若(Z0)=0,则K4M0Z0=K4M(0+0)=K4M0;若(Z0)=1,则K4M0Z0=K4M(0+1)=K4M1,依此类推;这个关系,可参阅编程手册。
有了上面的关系,再看INCP K4M0Z0的加1操作:
当(Z0)=0时,执行INCP K4M0Z0,就是K4M0Z0即K4M0内容加1;当(Z0)=1时,执行INCP K4M0Z0,就是K4M0Z0、此时为K4M1的内容加1;依次类推。
设开始时,M0~M15均是断开的,即K4M0的内容为0,则在(Z0)=0时执行一次加1操作后,K4M0的内容为0+1=1,所以M0为1、即M0接通。
在(Z0)=1时执行的K4M0Z0加1操作,是K4M1的加1操作,假设M16是断开的(不妨假设涉及到的M15以后的M全是断开的),则在进行加1操作前,K4M1为0,所以加1后,K4M1为1,新增加了M1接通;
而之前M0是接通的;应用指令的特点是,执行条件断开后,其结果会保持,所以M0保持接通;又在执行K4M1加1操作时,没有牵涉到M0,也无其他指令使M0复位,所以M0是保持接通的。
于是,此时得到的结果是:M0接通、M1接通。
其余类推。
楼主留言:
底下有我看了你的解释自己理解的,你看我写的对不对,谢谢你对我的帮助,耐心的为我解释,加你为好友,谢谢