恭喜,你发布的帖子
发布于 2021-11-25 17:55:01
31楼
芳季的程序在对每个子程序调用时分配的过程数据区前四个字节存储的是数据区首址指针,接着才存储真正的过程数据,所以要+4.且需要程序全扫描才能保证数据不会混乱。这种机制对中断程序中调用的子程序是有问题的。
-----------------
我分析的是每个子程序最后4bytes存储的都是VB1000的地址,开始时VD1000指向自己,随着其他子程序的执行VD1000指向各自的开始地址。但无论如何LD56都指向VB1000。SBR0开始的空闲需要LD56+4指向VB1004,但是常规子程序的LD56指向的VD1000所指向的V区已经时本身所需要的V区开始地址了,也+4就不明白了。
程序中没有对LD56进行过修改呀,所以LD56还是存储初始化时的&VB1000.
参见下面图片说明吧
请填写推广理由:
分享
只看
楼主