quote:以下是引用我心依旧555在2011-08-16 08:27:08的发言:
个人觉得西门子STL已非常接近汇编语言了(或者说就是),只是在编译器中集成了很多高级语言的概念。在编译后可能不需要再编为汇编语言代码了,一个汇编语言的代码一般如此,(指令码 操作数,操作数....),可以看到STL是符合这种格式的,所以很容易就编译为“机器码”。
请看STL中的BTI指令的描述:
BTI (3位 BCD数从十进制到二进制的转换)将 ACCU 1-L的内容解释为三位二进制编码的十进制数(BCD码),并将其转换为 16位整型。结果存储在累加器1的低字中,累加器1的高字和累加器 2则保持不变。
ACCU 1-L中的BCD数字:BCD数字的允许值范围从“-999”至“+999”。位 0到位 11解释为数值,位 15解释为 BCD数字的符号(0 = 正,1= 负)。位 12至位 14在转换中不使用。如果 BCD数字的十进制(四位)数字处于 10至 15的无效范围,则在转换期间会出现 BCDF错误。通常,CPU会转入STOP模式。但是,通过对OB121编程可设计另一种出错响应,用以处理该同步编程错误。
这条指令的功能可以用一条汇编语言的指令来实现吗?“STL已非常接近汇编语言了(或者说就是)”?显然这条指令需要编译为汇编语言后才能执行。CPU芯片只能执行汇编语言,不认识什么STL指令。
STL和汇编语言某些指令的功能差不多,但是STL不能等同于汇编语言。
PLC的累加器和RS-232一样,快进历史博物馆了。