This commit is contained in:
Miloslav Ciz 2023-10-28 14:40:53 +02:00
parent 2cf32776c0
commit 767b52f354
8 changed files with 121 additions and 60 deletions

View file

@ -65,63 +65,63 @@ next:
.
```
The bytecode this compiles to is following:
Here is annotated bytecode this compiles to:
```
000000: DES 00 0111 # func
000001: JMA 00 0100... # 20 (#14)
000002: COC 00 0001
000003: MGE 00 0000
000004: CON' 00 0010 # 2 (#2)
000005: MOX 00 0000
000006: DES 00 0001 # if
000007: JNA 00 0000... # 16 (#10)
000008: COC 00 0001
000009: CON' 00 0011 # 3 (#3)
00000a: MUX 00 0000
00000b: CON' 00 0001 # 1 (#1)
00000c: ADX 00 0000
00000d: DES 00 0010 # else
00000e: JMA 00 0011... # 19 (#13)
00000f: COC 00 0001
000010: CON' 00 0010 # 2 (#2)
000011: DIX 00 0000
000012: DES 00 0011 # end if
000013: RET 00 0000
000000: DES 00 0111 # func \ next:
000001: JMA 00 0100... # 20 (#14) |
000002: COC 00 0001 |
000003: MGE 00 0000 | $0
000004: CON' 00 0010 # 2 (#2) | 2
000005: MOX 00 0000 | %
000006: DES 00 0001 # if | \ ?
000007: JNA 00 0000... # 16 (#10) | |
000008: COC 00 0001 | |
000009: CON' 00 0011 # 3 (#3) | | 3
00000a: MUX 00 0000 | | *
00000b: CON' 00 0001 # 1 (#1) | | 1
00000c: ADX 00 0000 | | +
00000d: DES 00 0010 # else | < ;
00000e: JMA 00 0011... # 19 (#13) | |
00000f: COC 00 0001 | |
000010: CON' 00 0010 # 2 (#2) | | 2
000011: DIX 00 0000 | | /
000012: DES 00 0011 # end if | / .
000013: RET 00 0000 / .
000014: INI 00 0000
000015: INP 00 0000
000016: CON' 00 0000... # 48 (#30)
000015: INP 00 0000 <-
000016: CON' 00 0000... # 48 (#30) "0"
000017: COC 00 0011
000018: SUX 00 0000
000019: DES 00 0100 # loop
00001a: MGE 00 0000
00001b: CON' 00 1010 # 10 (#a)
00001c: DIX 00 0000
00001d: CON' 00 0000... # 48 (#30)
00001e: COC 00 0011
00001f: ADX 00 0000
000020: OUT 00 0000
000021: MGE 00 0000
000022: CON' 00 1010 # 10 (#a)
000023: MOX 00 0000
000024: CON' 00 0000... # 48 (#30)
000025: COC 00 0011
000026: ADX 00 0000
000027: OUT 00 0000
000028: CON' 00 1010 # 10 (#a)
000029: OUT 00 0000
00002a: MGE 00 0000
00002b: CON' 00 0001 # 1 (#1)
00002c: EQX 00 0000
00002d: DES 00 0001 # if
00002e: JNA 00 0100... # 52 (#34)
00002f: COC 00 0011
000030: DES 00 0101 # break
000031: JMA 00 1000... # 56 (#38)
000032: COC 00 0011
000033: DES 00 0011 # end if
000034: CAL 00 0011 # 3 (#3)
000035: DES 00 0110 # end loop
000018: SUX 00 0000 -
000019: DES 00 0100 # loop \ @@
00001a: MGE 00 0000 | $0
00001b: CON' 00 1010 # 10 (#a) | 10
00001c: DIX 00 0000 | /
00001d: CON' 00 0000... # 48 (#30) | "0"
00001e: COC 00 0011 |
00001f: ADX 00 0000 | +
000020: OUT 00 0000 | ->
000021: MGE 00 0000 | $0
000022: CON' 00 1010 # 10 (#a) | 10
000023: MOX 00 0000 | %
000024: CON' 00 0000... # 48 (#30) | "0"
000025: COC 00 0011 |
000026: ADX 00 0000 | +
000027: OUT 00 0000 | ->
000028: CON' 00 1010 # 10 (#a) | 10
000029: OUT 00 0000 | ->
00002a: MGE 00 0000 | $0
00002b: CON' 00 0001 # 1 (#1) | 1
00002c: EQX 00 0000 | =
00002d: DES 00 0001 # if | \ ?
00002e: JNA 00 0100... # 52 (#34) | |
00002f: COC 00 0011 | |
000030: DES 00 0101 # break | | !@
000031: JMA 00 1000... # 56 (#38) | |
000032: COC 00 0011 | |
000033: DES 00 0011 # end if | / .
000034: CAL 00 0011 # 3 (#3) | next
000035: DES 00 0110 # end loop / .
000036: JMA 00 1010... # 26 (#1a)
000037: COC 00 0001
000038: END 00 0000