I saw the repeating 'A' at the end of the base64 text and thought "it's not even 512 bytes; it's smaller!"<p>That said, the title is just a little clickbaity --- it's a C-subset compiler, and more accurately a JIT interpreter. There also appears to be no attempt at operator precedence. Nonetheless, it's still an impressive technical achievement and shows the value of questioning common assumptions.<p>Finally, I feel tempted to offer a small size optimisation:<p><pre><code> sub ax,2
</code></pre>
is 3 bytes whereas<p><pre><code> dec ax
dec ax
</code></pre>
is 2 bytes.<p>You may be able to use single-byte xchg's with ax instead of movs, and the other thing which helps code density a lot in 16-bit code is to take advantage of the addressing modes and LEA to do 3-operand add immediates where possible.