> Add arithmetic shift left/right .. I'll add
> Add logical shift left/right .. I'll add
> Add exclusive OR (XOR) .. I'll add
> Pick a word size so your integer and bit ops have meaning .. I think I'll just rely on js types to keep things simple, If you see any reason not to please explain further
> How do I set the program counter from my assembly?
The only way to set PC is through branching
> Do I have registers (seems like a stack-based VM, so no)? If not, can I have more stacks?
Like you said it's a stack-based VM, so no registers.
Currently it's a single stack since it's enough. I never encountered a machine with multiple stacks, can you enlighten me about this ?
> Can you setup a dedicated block of memory to use as a framebuffer and render it to a <canvas> tag
I made this machine to be used by students to test compilers, But I think I'll add this feature in case there is any ambitious student who wants to embed a graphics library in his language :)
Having a fixed word size in a machine is important for being able to say, for example, what the largest and smallest integers are (assuming twos-complement arithmetic).
> How do I set the program counter from my assembly? The only way to set PC is through branching
> Do I have registers (seems like a stack-based VM, so no)? If not, can I have more stacks? Like you said it's a stack-based VM, so no registers. Currently it's a single stack since it's enough. I never encountered a machine with multiple stacks, can you enlighten me about this ?
> Can you setup a dedicated block of memory to use as a framebuffer and render it to a <canvas> tag I made this machine to be used by students to test compilers, But I think I'll add this feature in case there is any ambitious student who wants to embed a graphics library in his language :)
Thanks,