;
;	CPE 221 Assembly Example
;	3/6/18
;	This program multiplies two unsigned numbers by repeated addition
;

        AREA MULTIPLY_BY_ADDING, CODE, READONLY
		
		LDR     r1, num1		; Load num1 into r1.
		LDR     r2, num2		; Load num2 into r2.
		MOV     r3, #0		    ; r3 holds result, initialize to 0.
		CMP     r1, #0
		BEQ     done		    ; If r1 is 0, result is zero, done.
		CMP     r2, #0
		BEQ     done 		    ; If r2 is 0, result is zero, done.
again	ADD	    r3, r3, r1		; Add r1 to r3.
		ADDS    r2, r2, #-1		; Decrement r4.
		BNE 	again		    ; If r4 is 0, done
done	STR  	r3, result	    ; Store r3 in result
num1    DCD     8			    ; positive number
num2	DCD	    9			    ; positive number
result	SPACE	4
        END
		

