Execute Computer/Zero: Difference between revisions

Content added Content deleted
Line 366: Line 366:


=={{header|Phix}}==
=={{header|Phix}}==
Assumes theres is no need for an "assembler", just a runtime interpreter. Output matches Algol 68.
First three were easy enough...
<!--<lang Phix>(phixonline)-->
<!--<lang Phix>(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
Line 377: Line 377:
<span style="color: #000000;">JMP</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0b110_00000</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- jump, goto xxxxx</span>
<span style="color: #000000;">JMP</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0b110_00000</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- jump, goto xxxxx</span>
<span style="color: #000000;">STP</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0b111_00000</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- stop</span>
<span style="color: #000000;">STP</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0b111_00000</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- stop</span>
<span style="color: #000000;">OP</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0b111_00000</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- operator</span>
<span style="color: #000000;">OP</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0b111_00000</span><span style="color: #0000FF;">,</span> <span style="color: #000080;font-style:italic;">-- operator mask</span>
<span style="color: #000000;">ARG</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0b000_11111</span> <span style="color: #000080;font-style:italic;">-- memory location (0 based)</span>
<span style="color: #000000;">ARG</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0b000_11111</span> <span style="color: #000080;font-style:italic;">-- memory location (0 based)</span>
Line 384: Line 384:
<span style="color: #004080;">integer</span> <span style="color: #000000;">pc</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">pc</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">a</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">0</span>
<span style="color: #008080;">while</span> <span style="color: #004600;">true</span> <span style="color: #008080;">do</span>
<span style="color: #008080;">while</span> <span style="color: #004600;">true</span> <span style="color: #008080;">do</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">op</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">and_bits</span><span style="color: #0000FF;">(</span><span style="color: #000000;">program</span><span style="color: #0000FF;">[</span><span style="color: #000000;">pc</span><span style="color: #0000FF;">],</span><span style="color: #000000;">OP</span><span style="color: #0000FF;">),</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">ppc</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">memory</span><span style="color: #0000FF;">[</span><span style="color: #000000;">pc</span><span style="color: #0000FF;">],</span>
<span style="color: #000000;">arg</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">and_bits</span><span style="color: #0000FF;">(</span><span style="color: #000000;">program</span><span style="color: #0000FF;">[</span><span style="color: #000000;">pc</span><span style="color: #0000FF;">],</span><span style="color: #000000;">ARG</span><span style="color: #0000FF;">)+</span><span style="color: #000000;">1</span>
<span style="color: #000000;">op</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">and_bitsu</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ppc</span><span style="color: #0000FF;">,</span><span style="color: #000000;">OP</span><span style="color: #0000FF;">),</span>
<span style="color: #000000;">arg</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">and_bits</span><span style="color: #0000FF;">(</span><span style="color: #000000;">ppc</span><span style="color: #0000FF;">,</span><span style="color: #000000;">ARG</span><span style="color: #0000FF;">)+</span><span style="color: #000000;">1</span>
<span style="color: #000000;">pc</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
<span style="color: #000000;">pc</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">1</span>
<span style="color: #008080;">switch</span> <span style="color: #000000;">op</span> <span style="color: #008080;">do</span>
<span style="color: #008080;">switch</span> <span style="color: #000000;">op</span> <span style="color: #008080;">do</span>
Line 391: Line 392:
<span style="color: #008080;">case</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">a</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">memory</span><span style="color: #0000FF;">[</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">]</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">a</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">memory</span><span style="color: #0000FF;">[</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">]</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">memory</span><span style="color: #0000FF;">[</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">a</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">memory</span><span style="color: #0000FF;">[</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">]</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">a</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">a</span> <span style="color: #0000FF;">+=</span> <span style="color: #000000;">memory</span><span style="color: #0000FF;">[</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">]</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">a</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">and_bitsu</span><span style="color: #0000FF;">(</span><span style="color: #000000;">a</span><span style="color: #0000FF;">+</span><span style="color: #000000;">memory</span><span style="color: #0000FF;">[</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">],</span><span style="color: #000000;">#FF</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">SUB</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">a</span> <span style="color: #0000FF;">-=</span> <span style="color: #000000;">memory</span><span style="color: #0000FF;">[</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">]</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">SUB</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">a</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">and_bitsu</span><span style="color: #0000FF;">(</span><span style="color: #000000;">a</span><span style="color: #0000FF;">-</span><span style="color: #000000;">memory</span><span style="color: #0000FF;">[</span><span style="color: #000000;">arg</span><span style="color: #0000FF;">],</span><span style="color: #000000;">#FF</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">BRZ</span><span style="color: #0000FF;">:</span> <span style="color: #008080;">if</span> <span style="color: #000000;">a</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span> <span style="color: #008080;">then</span> <span style="color: #000000;">pc</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">arg</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">BRZ</span><span style="color: #0000FF;">:</span> <span style="color: #008080;">if</span> <span style="color: #000000;">a</span><span style="color: #0000FF;">=</span><span style="color: #000000;">0</span> <span style="color: #008080;">then</span> <span style="color: #000000;">pc</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">arg</span> <span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">JMP</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">pc</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">arg</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">JMP</span><span style="color: #0000FF;">:</span> <span style="color: #000000;">pc</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">arg</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">STP</span><span style="color: #0000FF;">:</span> <span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%s: %d\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">name</span><span style="color: #0000FF;">,</span><span style="color: #000000;">a</span><span style="color: #0000FF;">})</span>
<span style="color: #008080;">case</span> <span style="color: #000000;">STP</span><span style="color: #0000FF;">:</span> <span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"%12s: %3d\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">name</span><span style="color: #0000FF;">,</span><span style="color: #000000;">a</span><span style="color: #0000FF;">})</span>
<span style="color: #008080;">return</span>
<span style="color: #008080;">return</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">switch</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">switch</span>
Line 406: Line 407:
<span style="color: #000000;">execute</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"fibonacci"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">14</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">15</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">13</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">14</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">15</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">13</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">16</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">execute</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"fibonacci"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">14</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">15</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">13</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">14</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">15</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">13</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">16</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">SUB</span><span style="color: #0000FF;">+</span><span style="color: #000000;">17</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">BRZ</span><span style="color: #0000FF;">+</span><span style="color: #000000;">11</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">16</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">JMP</span><span style="color: #0000FF;">+</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">14</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">8</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">})</span>
<span style="color: #000000;">SUB</span><span style="color: #0000FF;">+</span><span style="color: #000000;">17</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">BRZ</span><span style="color: #0000FF;">+</span><span style="color: #000000;">11</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">16</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">JMP</span><span style="color: #0000FF;">+</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">14</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">8</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">})</span>
<span style="color: #000000;">execute</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"linkedList"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">13</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">15</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">5</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">16</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">7</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">NOP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">14</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">NOP</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">BRZ</span><span style="color: #0000FF;">+</span><span style="color: #000000;">11</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">15</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">JMP</span><span style="color: #0000FF;">+</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">14</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">28</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">6</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span><span style="color: #000000;">26</span><span style="color: #0000FF;">,</span><span style="color: #000000;">5</span><span style="color: #0000FF;">,</span><span style="color: #000000;">20</span><span style="color: #0000FF;">,</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">30</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #000000;">22</span><span style="color: #0000FF;">,</span><span style="color: #000000;">4</span><span style="color: #0000FF;">,</span><span style="color: #000000;">24</span><span style="color: #0000FF;">})</span>
<span style="color: #000000;">execute</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"prisoner"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">NOP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">NOP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">SUB</span><span style="color: #0000FF;">+</span><span style="color: #000000;">29</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">BRZ</span><span style="color: #0000FF;">+</span><span style="color: #000000;">18</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">29</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">BRZ</span><span style="color: #0000FF;">+</span><span style="color: #000000;">14</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">31</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">JMP</span><span style="color: #0000FF;">+</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">31</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">JMP</span><span style="color: #0000FF;">+</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">29</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">30</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span>
<span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">30</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">JMP</span><span style="color: #0000FF;">+</span><span style="color: #000000;">2</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">3</span><span style="color: #0000FF;">})</span>
<span style="color: #000080;font-style:italic;">-- subtractions yielding negative results</span>
<span style="color: #000000;">execute</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"0-255"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span><span style="color: #000000;">SUB</span><span style="color: #0000FF;">+</span><span style="color: #000000;">4</span><span style="color: #0000FF;">,</span><span style="color: #000000;">STP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">255</span><span style="color: #0000FF;">})</span>
<span style="color: #000000;">execute</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"0-1"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">SUB</span><span style="color: #0000FF;">+</span><span style="color: #000000;">4</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">0</span><span style="color: #0000FF;">,</span><span style="color: #000000;">1</span><span style="color: #0000FF;">})</span>
<span style="color: #000080;font-style:italic;">-- overflow on addition</span>
<span style="color: #000000;">execute</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"1+255"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">LDA</span><span style="color: #0000FF;">+</span><span style="color: #000000;">3</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">ADD</span><span style="color: #0000FF;">+</span><span style="color: #000000;">4</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">STP</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">255</span><span style="color: #0000FF;">})</span>
<!--</lang>-->
<!--</lang>-->
You could of course define the programs using (say) 0b001_00011 instead of LDA+3.
{{out}}
{{out}}
<pre>
<pre>
2+2: 4
2+2: 4
7*8: 56
7*8: 56
fibonacci: 55
fibonacci: 55
linkedList: 6
prisoner: 0
0-255: 1
0-1: 255
1+255: 0
</pre>
</pre>

=={{header|Wren}}==
=={{header|Wren}}==
As I'm unclear whether the interpreter should be able to deal with labels, the programs all use literal memory addresses for now. Output is in decimal.
As I'm unclear whether the interpreter should be able to deal with labels, the programs all use literal memory addresses for now. Output is in decimal.