您现在所在的是:

西门子SIEMENS

回帖:17个,阅读:3859 [上一页] [1] [2] [下一页]
1120
rehe_1314
文章数:47
年度积分:50
历史总积分:1120
注册时间:2007/6/26
发站内信
发表于:2008/8/26 9:36:00
#0楼
这段时间读个程序,里面经常要进行字与,减,逐位取反。请问这是在做什么处理呢。有没有高人给我谈谈,分析分析啊,先谢一声。。。  
L     PIW  290
     T     MW   126
     L     2#1000000000000000
     AW      
     L     1
     -I    
     INVI  
     L     2#1111111111111111
     AW    
     JU    A01
谁说当代雷锋少,一代更比一代好
872
QINHUIART
文章数:56
年度积分:50
历史总积分:872
注册时间:2008/5/27
发站内信
发表于:2008/8/26 11:22:00
#1楼
加我QQ38675467
1168
gm99cn
文章数:80
年度积分:50
历史总积分:1168
注册时间:2007/10/18
发站内信
发表于:2008/8/26 17:30:00
#2楼
如果 PIW 290,16位数的最高位=1,第一个AW后 ACCU 1 =8000H。8000H-1=7FFFH,再取反=8000H。第二AW后ACCU 1 =8000H,CC 1 =1。
如果 PIW 290,16位数的最高位=0,第一个AW后 ACCU 1 =0000H。0000H-1=FFFFH,再取反=0000H。第二AW后ACCU 1 =0000H,CC 1 =0。
至于为什么写这么麻烦就不知道了。
mail:gaojian@gaojian100.cn网址:gaojian100.cn
19852
pqsh 版主
文章数:7496
年度积分:468
历史总积分:19852
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2008/8/26 20:55:00
#3楼
楼上说得很有意思.
可惜记不住这些指令,没空去详细分析.
貌似是正负处理.
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
19852
pqsh 版主
文章数:7496
年度积分:468
历史总积分:19852
注册时间:2006/8/22
发站内信
2018论坛解答高手
发表于:2008/8/26 22:06:00
#4楼
就是PIW290里的负数是补码什么的,要转到符号整数吧.
如果我忘了我
请帮忙记得我
pqsh@163,326199298@v&q同号
5436
dzfa 版主
文章数:2048
年度积分:50
历史总积分:5436
注册时间:2003/1/7
发站内信
发表于:2008/8/27 8:39:00
#5楼
没什么用处,就是要让人看不明白的。
烟台东泽----西门子山东地区之代理商,系统集成商
里的打杂的
1120
rehe_1314
文章数:47
年度积分:50
历史总积分:1120
注册时间:2007/6/26
发站内信
发表于:2008/8/27 9:00:00
#6楼
回gm99cn:非常感谢,你的例子很清楚。可是我还是不明白为什么这么做。

回pqsh:又一次见到你拉。呵呵。你说的正负处理,负数是补码转到符号整数。我感觉很对。但可是我对这个补码转到符号整数实在不熟悉。能不能象gm99cn一样给个例子呢。。。静侯佳音。
谁说当代雷锋少,一代更比一代好
970
ts蓝莲花
文章数:10
年度积分:50
历史总积分:970
注册时间:2008/8/27
发站内信
发表于:2008/8/27 10:06:00
#7楼
你把它转化成梯形图,在看就明白了。你先这样看一下,如果不行在联系我
1120
rehe_1314
文章数:47
年度积分:50
历史总积分:1120
注册时间:2007/6/26
发站内信
发表于:2008/8/27 11:13:00
#8楼
楼上的朋友,这种字操作指令用STL语言要简单点啊。呵呵
谁说当代雷锋少,一代更比一代好
1168
gm99cn
文章数:80
年度积分:50
历史总积分:1168
注册时间:2007/10/18
发站内信
发表于:2008/8/27 15:27:00
#9楼
一个16位数与“2#1000000000000000”进行AW运算,其结果的0~14位=0。PIW290的0~14位被过滤。
PIW290的第15位=0,是正数。计算结果:ACCU1=0000H,CC1=0。
PIW290的第15位=1,是负数。计算结果:ACCU1=8000H,CC1=1。
可是楼主的程序在计算完后使用一个无条件跳转指令( JU   A01 ),之后ACCU1和CC1怎么使用的就不得而知了。
L   PIW   290
T   LW   0
A   L1.7
=  M0.0  //M0.0=1为负数;M0.0=0为正数。判断正负数的一个方法。
mail:gaojian@gaojian100.cn网址:gaojian100.cn

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

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

93.6006