发布于 2012-03-24 22:56:31
13楼
顶楼的程序我给你注解一下:
LD SM0.0
LPS // 将上面的SM0.0压栈。从纯STL编程看,把一个定值压栈,没什么意义。
A I0.0
= M0.0 // M0.0=(SM0.0 and I0.0),简化后就是M0.0=I0.0
LPS // 压栈,此时进栈的是M0.0。进栈是给以后出栈用,若不出栈,等于白进。
A I0.1 // 这条指令不受进栈影响
= M0.1 // M0.1=(M0.0 and I0.1),简化后就是M0.1=(I0.0 and I0.1)
LPS // 压栈,此时进栈的是M0.1
A I0.2 // 这条指令不受压栈影响
= M0.2 // 同理,简化后的M0.2=(I0.0 and I0.1 and I0.2)
LPS
A I0.3
= M0.3
LPS
A I0.4
= M0.4
LPS
A I0.5
= M0.5
LPS
A I0.6
= M0.6
LPS // 此时进栈的是M0.6
A I0.7
= M0.7 // 至此,M0.7=(I0.0 and .... and I0.7)
LPP // 出栈,出来的是M0.6(进栈时的M0.6的值,不是真的M0.6)
A I1.0
= M1.0 // M1.0=(M0.6 and I1.0),化简后。。。。
程序到此没了?还有很多进栈的还没使用的呢。如果程序真到此结束了,前面一堆进栈指令,真的是白进了。