Examples in the class
1) sum 1...10 with straight line code
.code
0
mv r1 #1
add r1 r1 #2
add r1 r1 #3
add r1 r1 #4
add r1 r1 #5
add r1 r1 #6
add r1 r1 #7
add r1 r1 #8
add r1 r1 #9
add r1 r1 #10
trap 0
.end
2) sum 1..10 using while loop
;;
s = 0
;; i = 1
;; while i <= 10
;; s = s + i
;; i = i + 1
;; let r1 = i, r2 = s, r3 = test
.code 0
mv r2 #0
mv r1 #1
:loop
le r3 r1 #10
jf r3 exit
add r2 r2 r1
add r1 r1 #1
jmp loop
:exit
trap 0
.end
3) sum elements in an array
;;
sum array A[0..9]
;; i = 0
;; s = 0
;; while i < 10
;; s = s + A[i]
;; i = i + 1
;; let r1 = i, r2 = s, r3 = test,
r4 = A[i]
.symbol
A
50
;; define A[.] at 50
.code 0
mv r1 #0
mv r2 #0
:loop
lt r3 r1 #10
jf r3 exit
ld r4 @A
r1 ;; r4 = A[r1]
add r2 r2 r4
add r1 r1 #1
jmp loop
:exit
trap 0
.data 50
1 2 3 4 5 6 7
8 9 10
.end