; ; CPE 221 Assembly Example ; 2/29/2016 ; This program multiplies two unsigned numbers by repeated addition ; data: .org 200 num1: .dc 8 ; positive number num2: .dc 9 ; positive number result: .dw 1 code: .org 1000 lar r30, again lar r29, done ld r1, num1 ; Load num1 into r1. ld r2, num2 ; Load num2 into r2. sub r3, r3, r3 ; r3 holds result, initialize to 0. brzr r29, r1 ; If r1 is 0, result is zero, done. brzr r29, r2 ; If r2 is 0, result is zero, done. again: add r3, r3, r1 ; Add r1 to r3. addi r2, r2, -1 ; Decrement r4. brnz r30, r2 ; If r4 is 0, done done: st r3, result ; Store r3 in result. stop