引用 zld430070 的回复内容:比如取过来地址是256L 256 //取地址,整数或双整数SLW 3 //左移三位,ACCU1中数据格式为P#256.0LAR1 //送到地址寄存器1大家好,谁能帮我解释下上面的语句呀,我在看语句表程序时经常碰到类似语句,一直没搞明白为什么左移3位后变成了256。0,我在这里先谢谢大家了呀。
地址寄存器中的格式是32位 ,其中0-2位固定为BIT,8进制;后面为BYTE,整个数据格式是BYTE.BIT
L 256 2#0000,0001,0000,0000
SLW 3 左移动3位就成了2#0000,1000,0000,0000
LAR1 存入地址寄存器中就要翻译成BYRE.BIT
也就是 2#0000,1000,0000,0000翻译成 0000,1000,0000,0为BYTE。后面000为BIT
结果就是256.0
如果L 256
LAR1,那么按照上面的算法,地址寄存器中就翻译成:2#0000,0001,0000,0000
结果就是BYTE 位是2#0000,0001,0000,0算成10进制就是64,BIT位为000,那就是0
LAR1中结果为64.0
当你后面的地址为 DB1.DBD【AR1,P#0.0】的时候,所得到的地址完全变了,一个是DB1.DBD256;一个是DB1.DBD64