That works nicely, again.
This commit is contained in:
parent
b7659bdeaa
commit
a38d8153cd
|
|
@ -44,14 +44,12 @@ Mark II
|
||||||
mov_imm(TERM, 0),
|
mov_imm(TERM, 0),
|
||||||
store_word(TOS, SP, 0), % RAM[SP] := 0
|
store_word(TOS, SP, 0), % RAM[SP] := 0
|
||||||
|
|
||||||
label(Main),
|
label(Main)],
|
||||||
|
|
||||||
% if_zero(EXPR_addr, HALT),
|
⟐(if_zero(EXPR_addr, HALT)),
|
||||||
sub_imm(EXPR_addr, EXPR_addr, 0),
|
|
||||||
eq_offset(HALT),
|
|
||||||
|
|
||||||
% deref(EXPR_addr, EXPR),
|
% deref(EXPR_addr, EXPR),
|
||||||
load_word(EXPR, EXPR_addr, 0), % Load expr pair record into EXPR
|
[load_word(EXPR, EXPR_addr, 0), % Load expr pair record into EXPR
|
||||||
|
|
||||||
% At this point EXPR holds the record word of the expression.
|
% At this point EXPR holds the record word of the expression.
|
||||||
|
|
||||||
|
|
@ -195,6 +193,8 @@ language.
|
||||||
⟐([]) --> [].
|
⟐([]) --> [].
|
||||||
⟐([Term|Terms]) --> ⟐(Term), ⟐(Terms).
|
⟐([Term|Terms]) --> ⟐(Term), ⟐(Terms).
|
||||||
|
|
||||||
|
⟐(if_zero(Reg, Label)) --> [sub_imm(Reg, Reg, 0), eq_offset(Label)].
|
||||||
|
|
||||||
|
|
||||||
do :-
|
do :-
|
||||||
compile_program(Binary),
|
compile_program(Binary),
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Reference in New Issue