From b83c85c8a41dd0e6042e2e3a07e8550cd2eca59b Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Fri, 11 Jul 2014 21:29:43 -0700 Subject: 16 - conditional and unconditional jumps --- mu.arc.t | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'mu.arc.t') diff --git a/mu.arc.t b/mu.arc.t index f657bf6b..3825c4b9 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -151,3 +151,39 @@ ;? (prn memory*) (if (~iso memory* (obj 1 8)) (prn "F - jmp works")) + +(clear) +(add-fns + '((main + ((integer 1) <- loadi 8) + (jmp (location 3)) + ((integer 2) <- loadi 3) + (reply)))) +(run function*!main) +;? (prn memory*) +(if (~iso memory* (obj 1 8)) + (prn "F - jmp works")) + +(clear) +(add-fns + '((main + ((integer 1) <- loadi 0) + (jifz (integer 1) (location 3)) + ((integer 2) <- loadi 3) + (reply)))) +(run function*!main) +;? (prn memory*) +(if (~iso memory* (obj 1 0)) + (prn "F - jifz works")) + +(clear) +(add-fns + '((main + ((integer 1) <- loadi 1) + (jifz (integer 1) (location 3)) + ((integer 2) <- loadi 3) + (reply)))) +(run function*!main) +;? (prn memory*) +(if (~iso memory* (obj 1 1 2 3)) + (prn "F - jifz works - 2")) -- cgit 1.4.1-2-gfad0