**********
* Program ARITH_8 (6811)
*
* Fragments illustrate use of ADD, SUB and MUL
*
* P. H. Anderson, MSU, 26 Sept 91
**********
PSCT EQU $C000
DSCT EQU $D000
IDSCT EQU $D300
STACKTP EQU $0045
REG_BASE EQU $1000
PORTB EQU $04
PORTC EQU $03
DDRC EQU $07
ORG PSCT
LDS #STACKTP
* Note this is a fragment with no I/O. Assume locations
* Q1 and Q2 have been loaded by some other means.
LDAA Q1 * add Q1 and Q2, any carry ignored
ADDA Q2
STAA R1 * save in result R1
LDAA Q1 * R2 = Q1 - Q2
SUBA Q2
STAA R2
* Note that A and B form a double accumulator; A is upper, B is lower
LDAA Q1 * R3 = Q1 * Q2
LDAB Q2
MUL
STD R3
SWI
ORG IDSCT
Q1 FCB 100
Q2 FCB 90
ORG DSCT
R1 RMB 1
R2 RMB 1
R3 RMB 2