恭喜,你发布的帖子
发布于 2020-06-12 09:00:40
6楼
实际上就是指针指向的问题。所谓指向有两个意思,第一,指向对象的位置(地址)。第二,指向对象的类型。一般指针只会指向地址的首字节,那么对于字来说,后面3个字节也是这个指针范围,所以类型就是表征这个性质的。
西门子规定指针可以寻址到位(byte).并且指针必须是32位的,才能寻址到位(byte).16位的指针不能寻址到位。即32位(这里指长度)的指针,能指向类型是X.Y 中的Y。那么如果不想指向位,想指向字或者双字时,这个指针能使用吗?可以!左移3位(指令 SLD 3)使指针指向字类型。同理可以指向双字类型。这样编程寻址时,解决了地址与类型的配置问题。
如果将一个16位的指针,左移3位。它指向那?实际上,这是没有意义的运算。因为,西门子规定16位指针的用途只使用在块号的寻址,(FC Y 中的Y) ,不能用于位/字/双字/寻址。
请填写推广理由:
分享
只看
楼主