恭喜,你发布的帖子
发布于 2021-11-22 22:04:18
7楼
最后为什么要6个F?不是4个吗?
ST60 V区30k,32767,是不是16#FFFF就够了?
你这样占住AC3,难怪要所有子程序都要留个空间。保护和恢复AC3 。
MOVD AC3 LDx
.......
MOVD LDx AC3
除非子程序不使用AC3。是不是?(AC不算全局变量吗?)
这个情景就好像我的程序,递归把8级子程序LD56都占住了。我是一次性占住所有层的56。其实,其实都是一样占用一样的资源。
@winter938.你说说。
还有一个事情想讨论一下。
你的程序用间接寻址,把V区的东西块移动到L区然后才运行。然后运行完毕把L搬回去V。是不是?
我的程序直接用间接寻址运行在V区。(你看过我程序没有?)
到底怎样会运行更快?有一个问题,我这样做法没法寻址到位。要位操作,一样要像你这样复制过来L区,然后后面复制回去。但是你的程序有另一个问题,L区没有V区大,bmov不完怎么办?难道分时读取到L然后分时运行?我的做法如果程序里面涉及到很多指针的话,……我的例子是为了表达意思,只写了一个加法指令代表任何用户程序。这里就一个变量所以一个指针。常规子程序2里面是两个变量,所以两个指针。当指针大于x个的时候L区放不下了……此时麻烦出现了。需要用很多运行时间去重新计算指针,把已有的指针覆盖掉。新指针填上去。被覆盖的指针后面还要用的话又再次计算指针。所以需要很多时间计算指针。
你觉得怎样?
另外,我知道运行L寻址要比运行V寻址更慢。acVMSQI运行速度一样。并不存在M更快。(是就最好了)要运行更快,最好是间接寻址块移动到一前段V区,然后就在这V区运行。运行完搬回去数据V区。
请填写推广理由:
分享
只看
楼主