Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -*- wisp -*-
- ;; full-definition
- define machine
- data-paths
- registers
- : name a
- buttons
- : name a<-b
- source : register b
- : name b
- buttons
- : name b<-t
- source : register b
- : name t
- buttons
- : name t<-r
- source : operation rem
- operations
- : name rem
- inputs
- register a
- register b
- : name =
- inputs
- register b
- constant 0
- controller
- . test-b
- test =
- branch : label gcd-done
- t<-r
- a<-b
- b<-t
- goto : label test-b
- . gcd-done
- ;; abbreviated machine def
- define program
- quote
- ;; pseudo assembly
- controller
- . test-b ; label
- test
- op =
- reg b
- const 0
- branch
- label gcd-done
- assign t
- op rem
- reg a
- reg b
- assign a
- reg b
- assign b
- reg t
- goto
- label test-b
- . gcd-done ; label
- define program-compressed
- quote
- ;; pseudo assembly
- controller
- . test-b ; label
- test (op =) (reg b) (const 0)
- branch : label gcd-done
- assign t (op rem) (reg a) (reg b)
- assign a : reg b
- assign b : reg t
- goto : label test-b
- . gcd-done ; label
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement