isa: added sum code
authorMartin Perner <martin@perner.cc>
Wed, 27 Oct 2010 15:50:36 +0000 (17:50 +0200)
committerMartin Perner <martin@perner.cc>
Wed, 27 Oct 2010 15:51:19 +0000 (17:51 +0200)
2_isa/src/sum.c [new file with mode: 0644]
2_isa/src/sum.s [new file with mode: 0644]

diff --git a/2_isa/src/sum.c b/2_isa/src/sum.c
new file mode 100644 (file)
index 0000000..e863f39
--- /dev/null
@@ -0,0 +1,8 @@
+int sum(int len, int arr[]) {
+       int i;
+       int sum = 0;
+       for(i = 0; i < len; i++) {
+               sum += arr[i];
+       }
+       return sum;
+}
diff --git a/2_isa/src/sum.s b/2_isa/src/sum.s
new file mode 100644 (file)
index 0000000..af748fc
--- /dev/null
@@ -0,0 +1,17 @@
+;int sum(int len, int arr[]) {
+sum:
+       ;r1 = len
+       ;r2 = arr
+       ;r3 = i
+       ;r0 = sum
+       ldis r0, 0;
+       ;r4 arr data
+loop:
+       ;load arr data
+       ldw r4, r2;
+       ;sum += arr[i];
+       add r0, r0, r4;
+       subi r3, r3, 1;
+       retze-;
+       addi r1, r1, 4;
+       branch+ loop;