37.4. The general structure of the instructions
All instructions consist of one byte, denoting the opcode, and
some number of operands.
The conversion from a byte (in the range 0..255) to the opcode is
performed by lookup in the table contained in the file bytecode.d.
There are the following types of operands, denoted by different
letters:
k, n, m, l- A (nonnegative) numeric operand.
The next byte is read.
If its bit 7 is zero, then the bits 6..0 give the value (7 bits).
If its bit 7 is one, then the bits 6..0 and the subsequent byte
together form the value (15 bits).
b- A (nonnegative) 1-byte operand.
The next byte is read and is the value.
label- A label operand.
A signed numeric operand is read: The next byte is read.
If its bit 7 is zero, then the bits 6..0 give the value
(7 bits, sign-extended).
If its bit 7 is one, then the bits 6..0 and the subsequent byte
together form the value (15 bits, sign-extended).
If the latter 15-bit result is zero, then four more bytes are read
and put together (32 bits, sign-extended).
Finally, the bytecode pointer for the target is computed as the
current bytecode pointer (pointing after the operand just read), plus
the signed numeric operand.