恭喜,你发布的帖子
发布于 2024-09-06 21:41:47
1楼
你说:跨子程序数据传递
上下级跨是不可以的。上下级是不同的两套L。(你说的:表面上地址相同,实际完全不同)
左右跨是有可能传递的。左右的意思是指紧挨着调用的两个子程序,先调用的永远可以传给下一个子程序。
假设主程序调用过两个子程序。调用完A就调用C。那么在A里面向任何L写入的数据,在C处都可以完美读出。假如中间调用了一个B。那么B就捷足先登得到A的资料。假如B仅仅看一眼便离开没有写入任何东西,那么C仍可以读得A的数据。
C过后,下一个扫描周期,A同样可以读得C的遗留数据。
另一种情况,主程序只有A子程序。一个周期中调用完了一次又再调用一次。再没有别的调用了。那么两个A互为对方的上家、下家。所以经常听见有人说,调用一次结果成立了,另一个调用明明没有条件成立都仍然有结果成立。这就是这种传递作用在影响着。
你可以自己试验啊。第一个子程序mov个100去LB0。第二个子程序从LB0mov到VB0。观察一下VB0的值。
我想……你明白后试试中断的嵌套子程序中,是否都存在左右之间的传递?(但是这个就算证实也是完全没用的。他不像主程序中的子程序,可以人为制造调用次序。中断里的子程序,根本不确定两个中断谁先谁后。所以无法预测数据来源。)
请填写推广理由:
分享
只看
楼主