ilasmでstack machine その8


概要

ilasmでstack machineやってみた。
俺言語、コンパイラを作ってみた。
三段階の一段目を作ってみた。

ソースコード

10 a=0
20 a=a+1
30 #=a>100*255
40 b=a%15
50 #=b=0*120
60 b=a%5
70 #=b=0*140
80 b=a%3
90 #=b=0*160
100 ?=a
110 #=20
120 ?="fizzbuzz "
130 #=20
140 ?="buzz "
150 #=20
160 ?="fizz "
170 #=20

出力結果

    pushi   0
    set a
label_20:
    get a
    pushi   1
    +
    set a
    get a
    pushi   100
    if< label_255
    get a
    pushi   15
    %
    if  label_120
    get a
    pushi   5
    %
    if  label_140
    get a
    pushi   3
    %
    if  label_160
    get a
    call    printi
    jp  label_20
label_120:
    push    "fizzbuzz "
    call    prints
    jp  label_20
label_140:
    push    "buzz "
    call    prints
    jp  label_20
label_160:
    push    "fizz "
    call    prints
    jp  label_20
label_255:
    ret

成果物

以上。