Coding For Convolution
Coding For Convolution
.mmregs
.text
start:
zap
ldp #0002h
lar 3,#8300h
lar 4,#0007
lar 1,#8100h
loop:
mar *,1
lacc *+
sacl 050h
lar 2,#0153h
mar *,2
zap
rpt #0003h
macd 0c100h,*-
apac
mar *,3
sacl *+
zap
mar *,4
banz loop,*-
.end
CODING FOR GENERATION OF SIGNALS:
SAWTOOTH WAVEFORM:
amplitude .set 20
freq .set 255
temp .set 80
temp1 .set 0
.mmregs
.text
start:
ldp #100h
splk #0,temp
lar ar2,#freq
cont:
out temp,4
lacc temp;
add #amplitude
sacl temp
mar *,ar2
banz cont,*-
splk #0,temp1
out temp1,4
mar *,ar2
b cont
.end
SQUARE WAVEFORM:
amplitude .set 20
freq .set 255
temp .set 80
temp1 .set 0
.mmregs
.text
start:
ldp #100h
splk #0,temp
lar ar2,#freq
cont:
out temp,4
lacc temp;
add #amplitude
sacl temp
mar *,ar2
banz cont,*-
splk #0,temp1
out temp1,4
mar *,ar2
b cont
.end
TRIANGULAR WAVEFORM:
amplitude .set 20
freq .set 100
temp .set 0
.mmregs
.text
start:
ldp #100h
splk #0,temp
cont1:
lar ar2,#freq
cont:
out temp,4
lacc temp
add #amplitude
sacl temp
mar *,ar2
banz cont,*-
lar ar2,#freq
contx:
out temp,4
lacc temp
sub #amplitude
sacl temp
mar *,ar2
banz contx
b cont1
.end
CODING F0R FIR FILTERS:
.MMREGS
.TEXT
TEMP .SET 0
INPUT .SET 1
T1 .SET 2
T2 .SET 3
T3 .SET 4
;
K .SET 315eh
M .SET 4e9fh
LDP #100H
LACC #0
SACL T1
SACL T2
SACL TEMP
OUT TEMP,4 ;CLEAR DAC BEFORE START TO WORK
LOOP:
LACC #0
SACL TEMP
OUT TEMP,5 ;OUTPUT LOW TO DAC2 TO CALCULATE
TIMING
;
IN TEMP,06 ;SOC
;
LAR AR7,#30h ;CHANGE VALUE TO MODIFY SAMPLING
FREQ.
;sampling rate 100 æs.
MAR *,AR7
BACK: BANZ BACK,*-
;
IN INPUT,4 ;INPUT DATA FROM ADC1
NOP
NOP
;
LACC INPUT
AND #0FFFH
SUB #800h
SACL INPUT
;
LT INPUT
MPY #K
PAC
SACH T1,1
;;;CALL MULT ----MULTIPLICATION TO BE DONE WITH K
;;RESULT OF MULT IN T1
;
LT T2 ;PREVIOUS RESULT IN T2
MPY #M
PAC
SACH T3 ,1
;;;CALL MULT ----MULTIPLICATION TO BE DONE WITH M
;;RESULT OF MULT IN T3+
;
LACC T1
ADD T3
SACL T2
ADD #800h
SACL TEMP
OUT TEMP,4 ;OUTPUT FILTER DATA TO DAC1
;
LACC #0FFH
SACL TEMP
OUT TEMP,5 ;OUTPUT HIGH TO DAC2 TO CALCULATE
TIMING
;
B LOOP
CODIING FOR FAST FOURIER TRANSFORM(4 POINT):
IN .set 8010H
BITREV .set 8020H
REAL .set 8040H
IMG .set 8050H
.MMREGS
.TEXT
LDP #100H
LAR AR1,#IN
LAR AR2,#BITREV
SPLK #2H,05H
LMMR INDX,#8005H
MAR *,AR2
RPT #3H
BLDD #IN,*BR0+
LAR AR2,#BITREV
LAR AR3,#8030H
LAR AR0,#1H
FFT1: MAR *,AR2
LACC *+
SACB
LT *+
MPY #1H
APAC
MAR *,AR3
SACL *+
LACB
SPAC
SACL *+,AR0
BANZ FFT1,*-
LAR AR3,#8030H
LAR AR4,#REAL
LAR AR5,#IMG
MAR *,AR3
LACC *
SACB
ADRK #2H
LT *-
MPY #1H
APAC
MAR *,AR4
SACL *
ADRK #2H
LACC #0H
MAR *,AR5
SACL *
ADRK #2H
LACB
SPAC
MAR *,AR4
SACL *-
LACC #0H
MAR *,AR5
SACL *-,AR3
LACC *,AR4
SACL *
ADRK #2H
SACL *,AR3
ADRK #2H
LT *
MPY #0FFFFH
MAR *,AR5
SPL *,AR3
LT *
MPY #1H
MAR *,AR5
ADRK #2H
SPL *
H: B H
;INPUT:
; 8010-0001
; 8011-0001
; 8012-0000
; 8013-0000
;BIT_REV:
; 8020-0001
; 8021-0000
; 8022-0001
; 8023-0000
;FFT1:
; 8030-0001
; 8031-0001
; 8032-0001
; 8033-0001
;REAL:
; 8040-0002
; 8041-0001
; 8042-0000
; 8043-0001
;IMG:
; 8050-0000
; 8051-FFFF
; 8052-0000
; 8053-0001
CODING FOR ARITHMETIC OPERATION:
ADDITION:
X0 .SET0
X1 .SET1
X2 .SET2
X3 .SET3
Y0 .SET4
Y1 .SET5
Y2 .SET6
Y3 .SET7
W0 .SET8
W1 .SET9
W2 .SET10
W3 .SET11
.TEXT
.MMREGS
START
LDP #100H
LACC X1,16
ADDS X0
ADDS Y0
ADDS Y1
SACL W0
SACH W1
LACC X3,16
ADDC X2
ADDS Y2
ADDH Y3
SACL W2
SACH W3
.END
SUBTRACTION:
X0 .SET0
X1 . SET1
X2 .SET2
X3 .SET3
Y0 .SET4
Y1 .SET5
Y2 .SET6
Y3 .SET7
Z0 .SET8
Z1 .SET9
Z2 .SET10
Z3 .SET11
.TEXT
.MMREGS
START
LDP #100H
LACC X1,16
ADDS X0
SUBS Y0
SUBH Y1
SACL Z0
SACH Z1
LACC X3,16
ADDS X2
SUBB Y2
SACL Z2
SACH Z3
.END
MULTIPICATION:
op1 .set 0
op2 .set 1
res1 .set 2
res2 .set 3
.MMREGS
.TEXT
start:
ldp #100h
lt op1
mpy op2
pac
sacl res1
sach res2
.end