| 作者 | 主题 |
|---|---|
|
花开的声音 游士 经验值:232 发帖数:70 精华帖:0 |
楼主
主题:帮忙看到这段程序
TAR1 #tAR1_MEM
TAR2 #tAR_BASE L P##inDATA_POINTER L DW#16#7FFFF AD T #tAR_OFFSET L #tAR_OFFSET L #tAR_BASE +D LAR1 L W [AR1,P#0.0] T MW 2 L D [AR1,P#2.0] T MD 4 LAR1 #tAR1_MEM 请各位帮忙看看这段程序是什么意思,这指针是怎么执行的,谢谢了 |
|
youhm 至圣 经验值:13571 发帖数:4924 精华帖:81 |
3楼
主题:回复:帮忙看到这段程序
TAR1 #tAR1_MEM //保存当前AR1到变量#tAR1_MEM
TAR2 #tAR_BASE //保存当前AR2到变量#tAR_BASE L P##inDATA_POINTER //装载变量 #inDATA_POINTER的起始地址到累加器,在多重背景调用里,这个地址实际是相对地址,即就是一个偏移量 L DW#16#7FFFF AD //过滤32位地址里的区域信息(比如P#DBX100.0变成P#100.0) T #tAR_OFFSET L #tAR_OFFSET L #tAR_BASE //这段代码我想是在FB里的,FB里AR2保存的是背景数据的起始地址 +D LAR1 //这里实际上就是把变量#inDATA_POINTER的真实地址(即在多重背景数据块里的绝对地址)装载到AR1 L W [AR1,P#0.0] T MW 2 //传送#inDATA_POINTER的第一个字到MW2,Pointer指针的第一个字是DB块号 L D [AR1,P#2.0] T MD 4 //传送#inDATA_POINTER后4个字节的32位区域地址到MD4 LAR1 #tAR1_MEM //恢复AR1之前的值 这段代码说明了如何在多重背景调用里访问FB的输入Pointer 类型指针变量。 |