add compares to conditional jump instructions

This commit is contained in:
pommicket 2021-11-10 21:20:49 -05:00
parent 8f527338ae
commit 15a4be17e3
2 changed files with 11 additions and 8 deletions

View file

@ -74,6 +74,9 @@ plus six new ones:
- `//` is for comments
- `\n\n` does nothing (used for spacing)
Also, the conditional jump instructions now have a `cmp rax, rbx`
built into them.
## labels
Labels are the most important new feature of this language.
@ -174,7 +177,7 @@ the number of blank lines must be a multiple of 3!
Many of the limitations of our previous compilers apply to this one. Also,
if you use a label without defining it, it uses address 0, rather than outputting
an error message. This could be fixed: if the value in the label table is 0 and we are
on the second pass, output an error message. This compiler was already tedious enough
to implement, though!
on the second pass, output an error message. Also, duplicate labels aren't detected.
But thanks to labels, for future compilers at least we won't have to calculate
any jump offsets manually.

12
02/in01
View file

@ -14152,20 +14152,20 @@ the formatting changed appropriately.
;00;00;00;00;00;00;00;00
;00;00;00;00;00;00;00;00
;00;00;00;00;00;00;00;00
;02;0f;87;00;00;00;00;00
;02;0f;82;00;00;00;00;00
;05;48;39;d8;0f;87;00;00 ja
;05;48;39;d8;0f;82;00;00 jb
;00;00;00;00;00;00;00;00
;00;00;00;00;00;00;00;00
;02;0f;84;00;00;00;00;00
;05;48;39;d8;0f;84;00;00 je
;00;00;00;00;00;00;00;00
;02;0f;8f;00;00;00;00;00
;05;48;39;d8;0f;8f;00;00 jg
;00;00;00;00;00;00;00;00
;00;00;00;00;00;00;00;00
;00;00;00;00;00;00;00;00
;00;00;00;00;00;00;00;00
;02;0f;8c;00;00;00;00;00
;05;48;39;d8;0f;8c;00;00 jl
;01;e9;00;00;00;00;00;00
;02;0f;85;00;00;00;00;00
;05;48;39;d8;0f;85;00;00 jn
;00;00;00;00;00;00;00;00
;00;00;00;00;00;00;00;00
;00;00;00;00;00;00;00;00