【2017年整理】DSP汇编程序设计举例.ppt
文本预览下载声明
《DSP技术与应用》;第6章 TMS320C54XXDSP
汇编程序设计举例 ;例7-3(段定义及数据传送举例)
; .mmregs
.def _c_int00
.data
TBL:.word:0,1,2,3,4,5,6,7,8,9,10,11,12
.word 13,14,15,16,1 7,18,19
.word 1,1,1,1,1,1,1,1,1,1
.word 1,1,1,1,1,1,1,1,1,1
PROM: .usect PROM,20
.bss a,20
.bss x,20
.bss y,20
DATA: .usect DATA,20
;_c_int00
b start
nop
nop
start:STM #a,AR1;a[20]={0,1,2,3,4,5,6,7,8,9,10,
;11,12,13,14,15,16,17,18,19}
RPT #39 ;x[20]={1,1,1,1,1,1,1,1,1,1
MVPD TBL,*AR1+ ;1,1,1,1,1,1,1,1,1,1}
;完成任务1
STM #x,AR2;将数据存储器中的数组x[20]复制到数组y[20]
STM #y,AR3 ; y[20]={1,1,1,1,1,1,1,1,1,1
RPT #19 ;1,1,1,1,1,1,1,1,1,1}
MVDD *AR2+,*AR3+ ;完成任务2; STM #a,AR1 ;数据存储器中a[20]写入程序存储器
LD #PROM,A ; PROM段
STM #19,AR3
LOOP1: WRITA *AR1+ ;完成任务3
ADD #1,A,A
BANZ LOOP1,*AR3-
LD #PROM-1,A ;程序存储器PROM中20个数据存入数据
STM #DATA,AR1 ;存储器DATA段
ST #19,BRC
RPTB LOOP2
ADD #1,A,A
LOOP2: READA *AR1+ ;该指令为单字指令(完成任务4)
WAIT: NOP
B WAIT
.end;链接命令文件:
MEMORY
{PAGE 0: RAM: origin=1000h,length=800h
RAM1: origin=2000h,length=300h
PAGE 1:DARAM1: origin=0100h,length=100h
DARAM2: origin=0200h,length=100h
}
SECTIONS
{
.data :RAM PAGE 0
.text :RAM PAGE 0
PROM :RAM1 PAGE 0
.bss :DARAM1 PAGE 1
DATA :DARAM2 PAGE 1
}
;定点DSP中数的定标有Q和S两种表示方法(如下表所示),
16位的二进制中有一个符号位、15-Q个整数位.Q个小数位。;[例7-4]使用C54汇编语言编程计算并观察计算结果:
z1=x1+y1;
z2=x1-y1;
z3=x1*y1;
z4=x2*y2.
其中,x1=20,y1=54,x2=0.5,y2=-0.5837; 汇编源程序:
.title “suanshu.asm”
.mmregs
.def start,_c_int00
.bss x1,1 ;地址 0400h
.bss x2,1 ;地址 0401h
.bss y1,1 ;地址 0402h
.bss y2,1 ;地址 0403h
.bss z1,1 ;地址 0404h
.bss z2,1 ;地址 0405h
显示全部