📄 ex01.asm
字号:
***DSP指令实验***
.title "ex1"
.mmregs
.def _c_int00
ExNo .SET 00H
DAT0 .SET 01H
DAT1 .SET 02H
DAT2 .SET 03H
.data
buff .space 100h*16
.text
ADD3 .MACRO P1,P2,P3,ADDRP ;三数相加宏定义: ADDRP = P1 + P2 + P3
LD P1,A
ADD P2,A
ADD P3,A
STL A,ADDRP
.ENDM
_c_int00:
B start
start: LD #020h,DP ;置数据页指针
STM #3000h,SP ;置堆栈指针
SSBX INTM ;禁止中断
ST #0001H,ExNo
nop
nop
nop
bk0: ST #0012h,DAT0
LD #0023h,A
ADD DAT0,A ;加法操作: A = A + DAT0
STL A,DAT0
NOP
NOP
NOP
NOP
bk1: ST #0054h,DAT0
LD #0002h,A
SUB DAT0,A ;减法操作: A = A - DAT0
STL A,DAT0
NOP
NOP
NOP
NOP
bk2: ST #0345h,DAT0
STM #0002h,T
MPY DAT0,A ;乘法操作: A = DAT0 * T
STL A,DAT0
NOP
NOP
NOP
NOP
bk3: ST #1000h,DAT0
ST #0041h,DAT1
RSBX SXM ;无符号除法操作: DAT0 ÷ DAT1 ; 结果: DAT2:商;DAT3:余数
LD DAT0,A
RPT #15
SUBC DAT1,A
STL A,DAT2
STH A,DAT0
NOP
NOP
NOP
NOP
bk4: ST #0333h,DAT0
SQUR DAT0,A ;平方操作: A = DAT0 * DAT0
STL A,DAT0
NOP
NOP
NOP
NOP
bk5: ST #0034h,DAT0
ST #0243h,DAT1
ST #1230h,DAT2
ADD3 DAT0,DAT1,DAT2,DAT0 ;三数相加操作: DAT0 = DAT0 + DAT1 + DAT2
NOP
NOP
NOP
NOP
bk6: B bk0 ;循环执行
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -