OPN"DB_FT_TRA"//DBinternalconveyorbits
L1
SLD5
LAR1
LDBD[AR1,P#0.0]
TLD0
请教一下,这段程序左移五位是什么意思?请问谁有关于移位不同位数的讲解吗?谢谢
最佳答案
地址寄存器是专门用于寻址的一个特殊指针区域,西门子的地址寄存器共有两个:AR1
和AR2。每个32位。区域内寄存器间接寻址时,寄存器中的内容等同于存储器间接寻址中的双字指针,也就是:其0-2bit,指定bit位,3-18bit指定byte字节。其第31bit固定为0。
如果对相邻两个字节操作,指针转换为整数值最小必须为8(指针为P#1.0)的倍数;
如果对相邻两个字操作,指针转换为整数值最小必须为16(指针为P#2.0)的倍数;
如果对两个双字操作,指针转换为整数值最小必须为32(指针为P#4.0)的倍数。
数值左移一位,相当于数值乘以2。
OPN"DB_FT_TRA"//打开数据块“DB_FT_TRA"
L1//把十进制数值1装入累加器1
SLD5//累加器1数值左移5位。数值左移一位,相当于数值乘以2,左移5位,乘以2的5次方,最后数值等于32
LAR1//将累加器1存储的地址指针写入AR1
LDBD[AR1,P#0.0]//累加器1数值为32.相当于P#4.0,这条指令的意思是DBD4
TLD0//累加器1内容传送给LD0。
这段程序的意思就是把"DB_FT_TRA".DBD4的内容传送到LD0中。
间接寻址的详细信息请参考以下链接:htTP://wenku.baidu.com/link?url=1Etz4AxJubiWU5BadnH0wSD2oHJWfUyBGi8umSKlZcyCxXATcdWsf8okwtO9sz48OIJQsreAX7MTr8cgbITw5It91uAEjAzu-Tsf1EZZXD3
提问者对于答案的评价:
谢谢大神
专家置评
已阅,最佳答案正确。