恭喜,你发布的帖子
发布于 2021-12-17 20:40:58
44楼
主程序,子程序,中断程序里的LBL都是相对独立的.就算相同的LBL在子程序编译后就变成地址了.我猜测编译时是先将具有JMP_LBL的程序段内将LBL变为地址然后才处理子程序调用,所以规则禁止子程序间及与主程序的相互跳转.既然变为地址了,地址都是唯一的,就不存在什么ABAB,AABB.
所以LBL不是只能使用256次.而是在同一个子程序内(或主程序,中断)只能使用256次,并且不能重复.
举例:主机厂有LBL主任1,LBL主任2,LBL主任3.给主机厂配套的配套厂A也有LBL主任1,LBL主任2,LBL主任3.给配套厂A配套的配套厂B也有LBL主任1,LBL主任2,LBL主任3.编译时主机厂JMP的地址只能对应主机厂的,是不可能JMP到配套厂.
我奇怪的是,这个label属不属于存储资源,
如果属于资源,属不属于全局性资源,而且子程序调用可以多达八层,要每一层都互不干涉,堆栈不是得保存八次上级程序的label位置,那就是堆栈中可以有8x256个label空间
或者说 子程序可以多达128个,每个子程序来256个label,有128x256个label空间?
如果不属于资源为什么又有数量限制
看帮助文档,是属于存储资源,而且是全局性资源
请填写推广理由:
分享
只看
楼主