Encoding tables for constants
A constant is encoded as a series of instructions, where each instruction defines a digit of the constant, from the least significant to the most significant.
Each instruction has a right part defining the digit, and a left part defining its attributes.
Right part of the instruction | |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Left part of the instruction | |||
---|---|---|---|
Last digit? | Sign | Decimal point | Code |
|
|
Yes | D/ |
No | D | ||
|
Yes | E/ | |
No | E | ||
|
|
Yes | R/ |
No | R | ||
|
Yes | F/ | |
No | F |
Examples of encoded constants:
250.34 must be encoded as:
|
Marks the start of an encoded constant | |
|
|
+ says it's a four R says it's not the last digit, it's a positive number, and it doesn't have the decimal point |
|
|
says it's a three R says it's not the last digit, it's a positive number, and it doesn't have the decimal point |
|
|
S says it's a zero R / says it's not the last digit, it's a positive number, and has the decimal point (i.e., this is the digit that expresses units) |
|
|
- says it's a five R says it's not the last digit, it's a positive number, and it doesn't have the decimal point |
|
|
says it's a two D says it is the last digit, it's a positive number, and it doesn't have the decimal point |
-10 must be encoded as:
|
Marks the start of an encoded constant | |
|
|
S says it's a zero F / says it's not the last digit, it's a negative number, and has the decimal point (i.e., this is the digit that expresses units) |
|
|
- says it's a one E says it is the last digit, it's a negative number, and it doesn't have the decimal point |
1 must be encoded as:
|
Marks the start of an encoded constant | |
|
|
says it's a one D / says it is the last digit, it's a positive number, and has the decimal point (i.e., this is the digit that expresses units) |