发布于 2010-06-18 16:17:20
5楼
今天就超出了局部变量的范围这个问题又测试了一下,发现使用寄存器间接寻址L区,如果超出了L区(临时变量)定义范围那么就会出错,如果是绝对地址访问则不会出错
就这个例子
L P##OUT
L AR2 //这时AR2里的地址是V31.0
T LW [AR2,P#0.0] //这一句则是把累加器1发送到LW31(AR2里的地址是V31.0,但W前面加了L,就表示寻址L区,也就是临时变量的区域
如果你把#OUT改成#Temp(就是定义的临时变量,假如是0.0开始)
L P##Temp
L AR2 //这时AR2里的地址是L0.0
T LW [AR2,P#0.0] //这一句则是把累加器1发送到LW0(AR2是L0.0,也就是临时变量开始的一个字,这时W前面的L有和没有都一样了)