summaryrefslogtreecommitdiff
path: root/input/adjacent-adder-manual.asm
blob: 9d50a448a7b62e51f28289411d722c6cfabf00c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
;;;;;;;;
;;; adds adjacent elements of a 4-element vector together,
;;; storing the result in place.
;;; Does not make use of variables.

.data
        ;; empty
.text
        addi $2 $0 0x200
        addi $5 $0 0x1
        store $5 0($2)
        addi $5 $0 0x2
        store $5 1($2)
        addi $5 $0 0x3
        store $5 2($2)
        addi $5 $0 0x4
        store $5 3($2)
        addi $5 $0 0x0
        addi $6 $0 0x3
        jrl CHECK
LOOP:
        add $9 $2 $5
        load $7 -0($9)
        load $8 +1($9)
        add $7 $7 $8
        store $7 0($9)
        addi $5 $5 0x1
CHECK:
        cmp $6 $5
        bgt LOOP