恭喜,你发布的帖子
发布于 2023-01-22 21:58:45
33楼
大过年的没什么事,除了做饭吃饭。
两种都是规则。
如果采用第二种,看似很合理很理性很懂得自律,举个例子,如果父程序先后调用了两个子程序,调用前和调用后父程序分别做了AC保存和恢复,那就是先后两次了,在两个子程序间夹杂着一些关于AC的操作,影响对程序理解的顺畅度了。比起直接两个子程序调用的做法舒服程度就大打折扣了。
第一种,从父程序角度看很顺畅。唯一的要求是子程序自己“打扫卫生”和原样恢复。
同样是保存和恢复,代码一个放在父程序一个放在子程序,不多也不少。但第一种流畅第二种费劲。
唯一的分歧恐怕是芳季前辈说的同一套系统存在这两种规则编写的程序如何处理了。如果是我,我遵循第一种规则,如果有子程序代码就修改子程序实现自己打扫AC和恢复。如果没有代码?。。。我知道它子程序用了什么AC?只好封装再出发了:AC0-AC3都封装在新的子程序里面。
----------------------------------------------------------------------
没觉得AC 有什么不好的,虽然一样可以使用V来替代。不过在涉及数据类型转换之类的我一般先考虑AC。
我想问一问你个人。造成ac要保存一些数据,是什么原因什么需求的必须?你把ac保存到V等地方就什么事也没有了。不就是改一下地址。谁都不用做保存恢复动作。对全体程序都有利。你也知道自己打扫你上层自己用过的自己保存了就谁都不用再烦此事了。
你试试举例有什么做法一定要AC跨调用回来之后要AC数据是原好的?你一下子举不出。而且应该始终都举不出。无非就是上层或前一个子程序懒,随便把东西放在得心应手的AC里。然后谁都想得心应手,但是被占住了,只能保存恢复。
反过来,从来都没有靠ac保存数据,而是作中间变量用,如:一个字节型整数转浮点数然后输出:
BTI LB0 AC0
ITD AC0 AC0
DTR AC0 LD1
哪会占住AC?(难道最后这个LD也写成AC?就这样就占住AC?那你自己后来的程序又用AC吗?)即使AC有值也是垃圾,可以随便让下一个使用者覆盖。没损失。
谁干的程序要占住AC?例子没人能举出,但是就有见过做保存恢复的。既然没有因为,何必有所以?
请填写推广理由:
分享
只看
楼主