恭喜,你发布的帖子
发布于 2021-11-19 08:40:03
38楼
子程序的头尾两个网络确实是为了将Temp数据从V区取回和存回V区。刚才想将其做成子程序,无奈L区不支持间接寻址。
介绍一个我的设想,你看看行不行。
主程序调用一个没有参数的子程序,这个子程序里面的L已经是有值的,只不过这是上一次主程序调用某子程序的时候遗留下来的值。由于没有人可以再追索上一次是哪个子程序,所以说L区的值都是随机的。一定要先赋值后使用。
然而,在你的全扫描机制下,上一个子程序自然可以知道是哪个子程序。无形中L区成为了同级子程序之间坚实的桥梁。子程序之间根本不需要通过全局资源或者父级程序传递参数。
至此,可以在每个子程序的某几个字节里面录入子程序身份标识和内存申请要求等。然后主程序第一开始的地方用8级深度的各级子程序初始化这几个字节。扫描完了常规程序之后,常规程序第一扫描周期不干常规的事情,仅仅为了排队申请可用内存。到扫描结束之前主程序8级深度再初始化一次这些字节,结束第一扫描周期。主程序分析内存的用量是否超过物理空间,进行stop处理。
至此,由于实施了全扫描,每一个子程序的每一次调用都申请到了一片V区。并在第一次扫描中把所有有关数据写入了属于自己的V区里面。该申请独立空间的有一片独立空间,该申请共用空间的又若干子程序使用同一片V空间。可变长度申请的,安排最大使用长度。不需要空间的不分配空间。
接下来的扫描,就完完全全正常工作了。所有L资源可能成为了历史。分配任务完成L区不再使用,或者只用作自己的临时作用。
其实我的意思好像是你的前后两个子程序压入了用户子程序里面,然后v4000等的东西用L的横向传递代替了。
请填写推广理由:
分享
只看
楼主