最近一段时间读了一些德国人写的程序,发现一个不理解的编程方式,就是凡是在执行‘JPZ’这个跳转指令前,经常要将前面计算的DWORD或DINT类型值进行一个+0计算后,再执行JPZ这个指令,有点匪夷所思,例如:
...
NULL: L #l_z_sp; // DWORD类型
+D ;
T #l_z_sp; // = IN1 + IN2 in ms
L 0;
+D ;
JPZ pos;
...
又例如:
...
T #l_date; // DINT类型
JU kdgr;
grl: TAK ;
L 0;
+D ;
JPZ kdgr;
...
在执行+0前,累加器1中肯定是一个32位值,加上一个16位的0值能起什么作用呢?难道只是为了将原先的数值暂存到累加器2中?临时变量里有啊!