From 9f7f62675b4800330b1201ff84a7057725b63167 Mon Sep 17 00:00:00 2001 From: Zhangyun Ye <z.ye22@student.unimelb.edu.au> Date: Sun, 2 Sep 2018 23:48:18 +1000 Subject: [PATCH] Upload New File --- examples/EC_9.s | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 examples/EC_9.s diff --git a/examples/EC_9.s b/examples/EC_9.s new file mode 100644 index 0000000..026161c --- /dev/null +++ b/examples/EC_9.s @@ -0,0 +1,18 @@ + +MOV R3 12 ; N = 12 +MOV R2 1 ; + +;; local variables +;; R1 holds 'i', which is a counter from 0 .. N +;; R0 holds 'n', which is always equal to i! +MOV R1 0 ; i = 0; +MOV R0 1 ; n = 1; + +;; program body +;; loop invariant (see SWEN90010 next semester): n = i! +SUB R4 R3 R1 ; while(i != N) +JZ R4 4 ; { +ADD R1 R1 R2 ; i = i + 1; +MUL R0 R0 R1 ; n = n * i; +JMP 1 ; } +RET R0 ; return n; -- GitLab