您现在所在的是:

三菱Mitsubishi

回帖:5个,阅读:894 [上一页] [1] [下一页]
472
fei8665688
文章数:27
年度积分:50
历史总积分:472
注册时间:2017/10/27
发站内信
发表于:2017/11/7 21:16:42
#0楼
各位大佬,请教一下:如图1所示程序,将ZR0的地址存储在D17中,这样是只有ZR0的地址存储在D17中,还是ZR1、ZR2等等都顺次存储?
如图2所示程序,又将D17所存储地址中的数据存储在D20中,这里采用BMOV 160个单元,那么这160个单元是指160个地址(80个数据),还是160个数据,又或者是别的意思?还有为什么圈圈里的数据会不一样呢?

新手看程序,求解答!!!
附件 1.jpg

附件 3.jpg



24423
zzn6737
文章数:11989
年度积分:352
历史总积分:24423
注册时间:2006/9/18
发站内信
2016国庆活动(三)
发表于:2017/11/8 8:42:32
#1楼
注意16位和32位……
8302
fujifa
文章数:2937
年度积分:235
历史总积分:8302
注册时间:2014/2/10
发站内信
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
发表于:2017/11/8 8:44:49
#2楼
以下是引用fei86656882017/11/7 21:16:42的发言:
各位大佬,请教一下:如图1所示程序,将ZR0的地址存储在D17中,这样是只有ZR0的地址存储在D17中,还是ZR1、ZR2等等都顺次存储?
如图2所示程序,又将D17所存储地址中的数据存储在D20中,这里采用BMOV 160个单元,那么这160个单元是指160个地址(80个数据),还是160个数据,又或者是别的意思?还有为什么圈圈里的数据会不一样呢?

新手看程序,求解答!!!
附件 1.jpg

附件 3.jpg





1、ADRSET指令将ZR0在内存中的地址保存在D17中。仅仅是ZR0的地址,请注意是地址。
2、两个32位数据乘法的结果占据的是64位数据存储空间,即您的程序中D*  D12 K8 D15的结果是占据D15~D18这4个字,因此您的程序中发生了地址重叠,从而导致结果不是理想的结果。

HAVE FUN!
472
fei8665688
文章数:27
年度积分:50
历史总积分:472
注册时间:2017/10/27
发站内信
发表于:2017/11/8 22:37:30
#3楼
回复 #2楼 fujifa
D17、D18这两个字存储ZR0的地址是这样吧?
另外请问 BMOV @D17 D20 K160 这个命令的操作结果是什么呢?
8302
fujifa
文章数:2937
年度积分:235
历史总积分:8302
注册时间:2014/2/10
发站内信
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
发表于:2017/11/9 8:39:42
#4楼
以下是引用fei86656882017/11/8 22:37:30的发言:
D17、D18这两个字存储ZR0的地址是这样吧?
另外请问 BMOV @D17 D20 K160 这个命令的操作结果是什么呢?

Q1:D17、D18这两个字存储ZR0的地址是这样吧?
A1:前面我已经回答过了,D17存储的是ZR0在内存中的地址。

Q2:请问 BMOV @D17 D20 K160 这个命令的操作结果是什么呢?
A2:抛开目前的程序而言(因为你的程序D17的值已经不可预测了),该指令执行的结果是将从ZR0开始的160个字的内容存放入从D20开始的160个字内。

HAVE FUN!
+5
472
fei8665688
文章数:27
年度积分:50
历史总积分:472
注册时间:2017/10/27
发站内信
发表于:2017/11/9 19:02:33
#5楼
回复 #4楼 fujifa
谢谢您的解答!

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2024 Gkong.com, All Rights Reserved

46.8003