DSP程序题(2)

2018-12-05 13:39

ST #v2,y1

LD x1,A ;x1 A ADD y1,A ;A+Y1 A STL A,z1 ;保存AL z1 LD x1,A SUB y1,A STL A,z2

RSBX FRCT ;准备整数乘法,FRCT=0 LD X1,T

MPY Y1,A ; x1*y1 A

STH A,z3_h ;乘法结果高16位在z3_h 单元 STL A,z3_l ;乘法结果低16位在z3_l单元 ST #v3,x2 ST #v4,y2

SSBX FRCT ;准备小数乘法,FRCT=1 LD x2,16,A ; 将x2加载到AH

MPYA y2 ;x2*y2 B,and y2 T

STH B,z4 ;结果放到z4单元 11、对数组x[8]={0,1,2,3,4,5,6,7}进行初始化 .bss x,8

.data

Table: .word 0,1,2,3,4,5,6,7 .text

Start: STM #x,AR5 RPT #7

MVPD table,*AR5+ ?

●将数组x[5] 初始化为{1,2,3,4,5}。 .data;定义初始化数据段起始地址 TBL:.word 1,2,3,4,5 ;为标号地址TBL ;开始的5个单元赋初值

.sect “.vectors” ;定义自定义段,并获得该段起始地址 B START ;无条件转移到标号为START的地址 .bss x,5 ;为数组x分配5个存储单元 .text ;定义代码段起始地址

START:STM #x,AR5 ;将x的首地址存入AR5 RPT #4 ;设置重复执行5次下条指令 MVPD TBL,*AR5+ end: B end .end

●实现对数组X[5]={1,2,3,4,5}的初始化,然后将数据存储器中的数组X[5]复制到数组Y[5]。最后实现数组X和数组Y中对应元素相乘并累加,即z=1*1+2*2+3*3+4*4+5*5 .mmregs

.bss x, 5

.bss y, 5 .bss z, 1 .def start

table: .word 1,2,3,4,5 .text

start: STM #x, AR1 RPT 4

MVPD table,*AR1+ ;从程序存储器传送到数据存储器数组X[5]

STM # x, AR2

STM # y, AR3

RPT 4

MVDD *AR1,*AR3 ;从数据存储器数组X[5]传送到Y[5]

SSBX FRCT ;准备整数乘法

STM # x, AR2

STM # y, AR3

STM # z, AR4 RPTZ 4

MAC *AR2+,*AR3+,A STL A,*AR4

End: B end .end

12、对数据x[8]中的每个元素加1 .bss x,8

Begin: LD #1,16,B

STM #7,BRC STM #x,AR4 RPTB next-1

ADD *AR4,16,B,A STH A,*AR4+ next: LD #0,B ?

12、求解 .其中数据均为小数,且a1=0.3 a2=0.2 a3= -0.4 a4=0.1 x1=0.6 x2=0.5 x3=-0.1 x4=-0.2 .bss a,4

.bss x,4 .data

table: .word 3*32768/10

.word 2*32768/10 .word -4*32768/10 .word 1*32768/10 .word 6*32768/10

.word 5*32768/10 .word -1*32768/10 .word -2*32768/10 .text

Start: SSBX FRCT

STM #a,AR4 RPT #7

MVPD table,*AR4+ STM #x,AR5 STM #a,AR6 RPTZ A,#3

MAC *AR5+,*AR6+,A 13、计算 y = .bss x, 4, 1

a0 .word 012h a1 .word 3211h a2 .word fe11h a3 .word ff03h .sect “program” LD #X, AR1 LD #0, A,AR1 LD #a0, T MAC *+,A LD #a1,T MAC *+,A LD #a2,T MAC *+,A LD #a3,T MAC *,A

14、在堆栈操作中,PC当前地址为4020H,SP当前地址为1013H,运行PSHM AR7后,PC和SP的值分别是多少?解:SP=1012H; PC=4021H 16、试编写0.25×(-0.1)的程序代码。 .title \ .mmregs .global _c_int00 .bss x,1 .bss y,1 .bss z,1 .data AmpCoef: .word 25*32768/100 .word -1*32768/10 .text _c_int00: ssbx FRCT stm #x,ar1

rpt #0x1 mvpd #AmpCoef,*ar1+ stm #x,ar2 stm #y,ar3 mpy *ar2,*ar3,A sth A,*ar1 Wait: b Wait .end

17、将定点数0.00125用浮点数表示。解:A=28H;T=19H 18、试写出以下两条指令的运行结果: ①EXP A

A=FFFD876624 T=0000

则以上指令执行后,B、T的值各是多少?解: A=0xFFFD876624;T=5 ②NORM B

B=420D0D0D0D, T=FFF9

则以上指令执行后,B、T的值各是多少?解:B=0x841A1A1A, T=FFF9

19a[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19},x[20]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]的初始化,并将数据存储器中的数组x[20]复制到数组y[20],将数据存储器中的a[20]写入到程序存储器PROM(2000H-2013H),再将程序存储器PROM中的20个数据存入数据存储器DATA(0200H-0213H) .mmregs

.data TBL: .word

0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 .word 1,1,1,1,1,1,1,1,1,1,1,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 .text

Start: STM #a,AR1 RPT #39

MVPD TBL,*AR1+ STM #x,AR2 STM #y,AR3 RPT #19

MVDD *AR2+,*AR3+ STM #a,AR1 LD #PROM,A STM #19,AR3 LOOP: WRITA *AR1+ ADD #1,A,A

BANZ LOOP,*AR3-

LD #PROM-1,A STM #DATA,AR1 ST #19,BRC RPTB LOOP1 ADD #1,A,A LOOP1: READA *AR1+ WAIT: NOP

B WAIT 20、建立链接命令文件 _o mymove.out _m mymove.map 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 PAGE1 DATA :>DARAM2 PAGE1 }

21、●设计一存储空间为100个单元的堆栈。将栈底地址指针送SP,对其初始化。 Size .set 100;设置堆栈空间的大小为100

Stack .usect \设置堆栈段的首地址和堆栈空间 STM #stack+size,SP

●利用SUBC完成整除法,41H/7H=9H,余数是2H。 LD #0041H, B STM #0100H, AR2 STM #0110H, AR3 ST #0007H, *AR2 RPT #15

SUBC *AR2,B STL B,*AR3+ STH B,*AR3

●编写求解加、减法的程序,计算z=x+y-w。 .title \.mmregs

STACK .usect “STACK”,10H


DSP程序题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:人教版小学二年级下册语文期末复习计划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: