我正在编写代码生成器,但没有足够的资源来完成它。我只有带有 ST 语言编译器的旧软件。我想做的是从这个编译器的输出中,编写我的代码生成器,也许不是最好的方法,但我能做到的最好。
我的问题是,任何人都知道“.4asm”扩展是什么意思,我该如何编写代码生成器?
ps:一些输出代码:
.prg program1
clssid 13
var bool rst
var u295_initvar inizializzazioni
var u295_cicloprova cicloprova
var u295_elaboratest elaboratest
var u295_salvadati salvadati
var u295_assegnazioni assegnazioni
var u295_allarmi allarmi
var udint d
var bool testen
var u295_ricercazero ricercazero
var u295_startmotore startmotore
var uint count
var u295_default default
var dint j
var u295_tara tara
var uint countdelay
var u295_blinkled blinkled
bp 0 ;"(27,2)"
stmtbeg 2 ;"(27,2)"
PSHD_IN_32 d
PSHC_01_32
add_udint
POPD_IN_32 d
stmtbeg 3 ;"(28,2)"
PSHC_00_32
POPD_IN_32 j
stmtbeg 4 ;"(29,13)"
PSHC_TX '1.10'
LEAO_ID objid(__global_inst) offsetof(__global,revisioneplc)
MOVE_STRING
stmtbeg 5 ;"(30,1)"
PSHD_IN_1 rst
not_bool
PSHD_GI_8 ch0_in_16_23
PSHC_VV_8 byte#16#f0
and_byte
PSHC_VV_8 byte#16#a0
eq_byte
PSHD_IN_1 testen
or_bool
and_bool
jmpcn @L0 ;to else
stmtbeg 6 ;"(32,5)"
PSHC_01_1
POPD_IN_1 rst
stmtbeg 7 ;"(33,2)"
CALB_PN clsid(u295_initvar) inizializzazioni
stmtbeg 8 ;"(34,2)"
PSHC_00_1
POPO_IN_1 ricercazero offsetof(u295_ricercazero,start)
CALB_PN clsid(u295_ricercazero) ricercazero
...