本帖最后由 谋圣在人间 于 2021-1-5 14:55 编辑
间接寻址使用方法 间接寻址使用指针访问存储器中的数据。 指针是包含另一个存储位置地址的双字存储位置。 只能将 V 存储位置、L 存储位置或累加器寄存器(AC1、AC2、AC3)用作指针。 要创建指针,必须使用“移动双字”指令,将间接寻址的存储位置地址移至指针位置。 指针还可以作为参数传递至子例程。
允许指针访问下列存储区: I、Q、V、M、S、T(仅限当前值)、C(仅限当前值)、SM、AI 和 AQ。 您不能使用间接寻址访问单个位或访问 HC、L 或 AC 存储区。
要间接访问存储器地址中的数据,通过输入一个“和”符号 (&) 和要寻址的存储位置,创建一个该位置的指针。 指令的输入操作数前必须有一个“和”符号 (&),表示存储位置的地址(而非其内容)将被移到在指令输出操作数中标识的位置(指针)。
辨析:&VB20 “&”为取址符号 意为将VB20的区域号和地址编号取出来,存放到VD200中 *VD200 “*” 为寻址符号 将VD200里面存储的地址中的值也就是&VB20中的值传送给VB600/VW602/VD604
VD200中存储的是指针指向的地址,是地址,地址,重要的事情讲3遍
建立指针后监控VD200 16#08000014 0800为V区的区域号 0014是指向地址的编号16#14=10#20
同理I、M、Q等区域都有自己的区域地址
明白了地址偏移后结合for循环指令便可以做一些重复累加计算和查找一类的程序便能得心应手了
读取指针在,这里显示指向的地址VB20、VW20、VD20
指针偏移
指针没有偏移时为VD20,操作偏移一个双字
地址偏移后地址从VD20偏移到了VD24
|