展开查看
以下是引用nubb在2014-08-29 21:47:57的发言 >1楼:LAR1 P##_PI1_StatWord1 //将#_PI1_StatWord1存储的值以指针形式装载到寄存器AR1(假如#_PI1_StatWord1的值是100)
L #iPI_1 //装载 #iPI_1的值
T LW [AR1,P#0.0] //寄存器间接寻址,将#iPI_1的值传递到到地址 LW 100,地址即寄存器AR1的值加上P#后的字节数,例如:如果是T LW [AR1,P#2.0] 那就是传递到地址LW102;其它语句一样。
哦, 那么 就拿 LAR1 P##_PI1_StatWord1 这一条指令来理解,
1. LAR1 是载入地址值 到 指针寄存器 AR1 里面,
2. 这里 P##_PI1_StatWord1 这个语句是不是可以理解成 P#(标识指针数值) #(指针变量的值)_PI1_StatWord1(变量名)
也就是上 编译器是先把 执行 #_PI1_StatWord1 取出_PI1_StatWord1 变量的值,然后再把它做 P#(转换成地址值)处理,
3. 通过LAR1 指令 地址值 传送到 AR1 寄存器。。
不知道这样理解对不对?
物尽天择. ! 时光悠悠,岁月渐老, 活在当下最重要!