指针寻址指令什么情况使用
展开全部
指针用来指向一个地址。使用这种寻址方式的优点在于可以在程序运行过程中实现变址。
指针用于存储器间接寻址
程序中用于存储器间接寻址的语句包含一个指令、一个地址标识符、以及一个偏移量(偏移量必须在方括号内给出)。
下面给出一个双字格式的指针的例子:
l
p#8.7
把指针值装载到累加器1
t
i[md2]
把指针值传送到md2
a
i[md2]
查询i8.7的信号状态
=
q[md2]
给输出位q8.7赋值
存储区域内部寻址及交叉寻址
:程序中采用这些寻址方式的语句包含一个指令以及下列内容:地址标识符、地址寄存器标识符、偏移量。地址
寄存器(ar1、ar2)及偏移量必须写在方括号内。
存储区域内部寻址例程
:指针不包含指示存储区域的信息:
l
p#8.7
把指针值装载到累加器1
lar1
把指针从累加器1装载到ar1
a
i[ar1,p#0.0]
查询i8.7的信号状态
=
q[ar1,p#1.1]
给输出位q10.0赋值
偏移量0.0不起作用。输出q10.0
等于8.7
(ar1)
加偏移量1.1。结果是10.0
,而不是9.8。
存储区域交叉寻址例程
:在存储区域交叉寻址中,指针中包含指示存储区域的信息(例子中为
i
和
q)。
l
p#i8.7
把指针值及存储区域标识装载到累加器1
lar1
把存储区域i
和地址8.7装载到ar1
l
p#q8.7
把指针值和地址标识符装载到累加器1
lar2
把存储区域q和地址8.7装载到ar2
a
[ar1,p#0.0]
查询输入位i8.7的信号状态
=
[ar2,p#1.1]
给输出位q10.0赋值
偏移量0.0不起作用。输出q10.0
等于8.7
(ar2)
加偏移量1.1。结果是10.0
,而不是9.8,
指针用于存储器间接寻址
程序中用于存储器间接寻址的语句包含一个指令、一个地址标识符、以及一个偏移量(偏移量必须在方括号内给出)。
下面给出一个双字格式的指针的例子:
l
p#8.7
把指针值装载到累加器1
t
i[md2]
把指针值传送到md2
a
i[md2]
查询i8.7的信号状态
=
q[md2]
给输出位q8.7赋值
存储区域内部寻址及交叉寻址
:程序中采用这些寻址方式的语句包含一个指令以及下列内容:地址标识符、地址寄存器标识符、偏移量。地址
寄存器(ar1、ar2)及偏移量必须写在方括号内。
存储区域内部寻址例程
:指针不包含指示存储区域的信息:
l
p#8.7
把指针值装载到累加器1
lar1
把指针从累加器1装载到ar1
a
i[ar1,p#0.0]
查询i8.7的信号状态
=
q[ar1,p#1.1]
给输出位q10.0赋值
偏移量0.0不起作用。输出q10.0
等于8.7
(ar1)
加偏移量1.1。结果是10.0
,而不是9.8。
存储区域交叉寻址例程
:在存储区域交叉寻址中,指针中包含指示存储区域的信息(例子中为
i
和
q)。
l
p#i8.7
把指针值及存储区域标识装载到累加器1
lar1
把存储区域i
和地址8.7装载到ar1
l
p#q8.7
把指针值和地址标识符装载到累加器1
lar2
把存储区域q和地址8.7装载到ar2
a
[ar1,p#0.0]
查询输入位i8.7的信号状态
=
[ar2,p#1.1]
给输出位q10.0赋值
偏移量0.0不起作用。输出q10.0
等于8.7
(ar2)
加偏移量1.1。结果是10.0
,而不是9.8,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询