* REENTRANT MULTIPLICATION * MULTIPLIES TWO 8 BIT UNSIGNED NUMBERS GIVING * A 16 BIT UNSIGNED PRODUCT * A * B = A,B * ORG $0 TEST LDS #STACK LDA A #10 LDA B #20 JSR MPY8 ;CALL MULTIPLY SUBROUTINE JMP * MPY8 PSH A ;MULTIPLICAND TO STACK LDA A #8 PSH A ;COUNT TO STACK TSX CLR A ROR B M3 BCC M4 ;DO NOT ADD ADD A 1,X ;ADD MULTIPLICAND M4 ROR A ROR B DEC 0,X ;DECREMENT COUNT BNE M3 INS ;RESTORE STACK INS RTS ;SUBROUTINE RETURN RMB 20 ;TEMP STORAGE FOR STACK STACK RMB 1 ;START OF STACK (WHEN EMPTY) END