发布于 2012-07-25 20:46:36
34楼
呵呵,我是这样考虑的:
1、因为200里面目前还没有指针类型形参,导致一个完整的指针无法通过一个指针形参来传递进子程序。如果在子程序内部用&XXXX来定义指针的话,区域地址标识就定死了,那就更不自由了!我是这样来处理这个问题的:因为指针的高字存放的是区域地址标识,底字存放的是地址;这样就可以把指针分成两个INT类型的形参传递到子程序内部,然后在子程序内部再合并起来组成完整的指针(可能麻烦些)。这样是为了方便判断地址标识和地址输入是否正确。
2、200的M区、L区、·······这几个区也就几十个字节,碗口大的地方存放不了较多的数据啊;编程者一般会将较多的数据存储在V区,所以我把其它区域地址标示给屏蔽了。考虑到,万一地址标识输入弄错了,寻址超出,这种问题查起来还特别头疼。
3、指令MOVW *LD0, LW11 中的*LD0其实已经自动完成了地址区域标识和地址的合并,生成了真正的指针。后面的代码思想和我21楼思想一致,在子程序内部,确实可以省去2个临时变量,可以省去两条语句。
4、在子程序内部直接使用&XXXX来生成指针,个人感觉在子程序内部间接寻址还不够灵活。
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”