LD SM0.0
MOVD +0, AC0
MOVB VB3934, AC0
MOVD &VB3902, LD0
+D AC0, LD0
MOVB *LD0, AC0
望各位高手给予指导
最佳答案
以上几位讲得都不错。
我觉得还可以讲一下编程的思路。
LD SM0.0
MOVD +0, AC0
MOVB VB3934, AC0
这几句,是常用的位长度扩展的方法。在计算机中,两个整型数相加,其二进位的位长必须相等。当两个位长不相等的数相加时,必须对位长较短的数进行位扩展。
本程序中,VB3934的值将和&VB3902进行相加,VB3904是一个8位长的数,而&VB3902则是一个32位长的数。因此上面的几句,就是把Vb3904的值扩成32位长。显然,Vb3904是个无符号数,所以仅对高位作了清0处理。若是有符号数,还要作符号位的扩展。
提问者对于答案的评价:
ok
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc320943.html