User loginNavigation |
archivescicada-nymph -- a forth-like language for to teachthe little nymph is for teaching purpose only. it reuses the code and idea to teach my friends I will use assembly language (FASM for x86-64) the programming language to be implemented the following shows how to define "if" & "else" & "then" by "define-macro"
: if
<< string[address, length] --
address, string[address, length] >>
*false?branch* save-into,jo-heap
*current-free-address,jo-heap* xx|swap|x
0 save-into,jo-heap
end
; define-macro
: else
<< address, string[address, length] --
address, string[address, length] >>
*branch* save-into,jo-heap
x|swap|xx
*current-free-address,jo-heap* xxx|swap|x
0 save-into,jo-heap
<< address, string[address, length], address >>
*current-free-address,jo-heap*
over sub *jo-size* div
swap save
end
; define-macro
: then
<< address, string[address, length] --
string[address, length] >>
x|swap|xx
*current-free-address,jo-heap*
over sub *jo-size* div
swap save
end
; define-macro
the following shows how to define factorial
: factorial
<< number -- number >>
dup one? if
end
then
dup sub1 factorial
mul
end
; define-function
for the code and more info :: code on github the cicada nymph is for teaching purpose at first and |
Browse archivesActive forum topics |
Recent comments
2 days 6 hours ago
3 days 2 hours ago
4 days 7 hours ago
4 days 7 hours ago
1 week 2 days ago
1 week 2 days ago
1 week 2 days ago
4 weeks 3 days ago
5 weeks 1 day ago
5 weeks 1 day ago