DSP答案

发布 2022-09-03 08:46:28 阅读 7753

设ar2=2060h,作为基地址,指向x(0)的存储单元。

ar0=0008h

第2次*ar2+0b寻址 ;ar2=2068h, 即x(8)

第3次*ar2+0b寻址 ;ar2=2064h即x(4)

第4次*ar2+0b寻址 ; ar2=206dh即x(12)

1、coff (common object file format,coff) :汇编器和链接器所创建的目标文件 。

段——就是在编写汇编语言源程序时,采用的**块或数据块,它占据存储器的某个连续空间。

段的作用:。让程序是按段组织的,;使用**块(段)和数据块(段)编程,而不是指令或数据简单的顺序编写,将每行汇编语句从属一个段。

三个已初始化段。

text段:存放程序**。

data段:存放已初始化数据。

sect段:自定义段,存放初始化数据或程序**。

两个未初始化段。

bss段:为未初始化变量保留存储空间。

usect段:自定义段,保留存储空间。

作用:给程序提供数据并且控制汇编过程。

汇编伪指令分成8类(根据功能):

1.对各种段进行定义的伪指令;

2.对常数(数据和存储器)进行初始化的伪指令;

3.调整spc(段寄存器)的指令;

4.输出列表文件格式伪指令;

5.引用其他文件的伪指令;

6.控制条件汇编的伪指令;

7.在汇编时定义符号的伪指令;

8.执行其他功能的伪指令。

bss为未初始化的变量保留空间;

.data通常包含了初始化的数据;

.sect定义已初始化的带命名段,其后的数据存入该段;

.text该段包含了可执行的**;

.usect在一个未初始化的有命名的段中为变量保留空间。

5、链接命令文件的作用:一个或多个coff目标文件链接起来;将各个段配置到目标系统的存储器中;对各个符号和段进行重新定位,并给它们制定一个确定的地址;

将扩展名为。obj的一个或多个coff目标文件链接起来,生成可执行的输出文件(.out)和存储器映像文件(.map)。

-o -m -e start

memory

page0: progorg=0f600h, len=100h

vecsorg=7600h, len=8000h

page1: sramorg=01f10h, len=4000h

dramorg=05f10h, len=1000h

sections

.text> prog page 0

.data>ra mpage 1

.bss> rampage 1

.vectors :>vecspage 0

8、如果没有利用memory和sections命令,链接器就按缺省算法来定位输出段:

memory

page 0:prog:origin=0x0080, length=0xff00

page 1:data:origin=0x0080, length=0xff80

sections

.text: page=0

.data: page=0

.cinit: page=0

.bss: page=1

9、.title “

mmregs

stack .usect “stack”, 30h

bss data1, 10

bss data2, 10

data table: .word 1,2,3,4,5,6,7,8,9,10

def start

textstart: stm #data1, ar1

rpt #mvpd table, *ar1+ ;程序存储器传送到数据存储器。

stm #data1, ar2

stm #data2, ar3

rpt #mvdd *ar2+, ar3+ ;数据存储器传送到数据存储器。

end: b end

end 链接命令。

-o -m -e start

memory

page 0:

eprom: org=0e000h len=01f80h

vecs: org=0ff80h len=00080h

page 1:

spram: org=00060h len=00020h

daram: org=00080h len=01380h

sections

vectors:> vecs page 0

text:> eprom page 0

data:> eprom page 0

bss:> spram page 1

stack:> daram page 1

10、.title “

mmregs

stack .usect “stack”, 10h堆栈的设置。

bss a,3为变量分配10个字的存储空间。

bss x,3

bss mpadd, 1

bss min, 1

def start

data tableword 1, 5, 3

word 8, 6, 7

textstart: stm0, swwsr插入0个等待状态。

stmstack+10h,sp ;设置堆栈指针。

stma, ar1

rpt5 mvpd table, *ar1+

call sum调用乘累加子程序。

call mini调用求最大值子程序。

endbend

sum: stm #a, ar3

stm #x, ar4

rptz a, #

mac *ar3+, ar4+, a

stla, @mpadd存放乘累加的值。

ret mini: stma, ar1

stm #x, ar2

stm #1,ar3

ldar1+, t

mpy *ar2+, a第一个乘积在累加器a中。

loop: ldar1+, t

mpyar2+, b其他乘积在累加器b中。

min a累加器a和b比较,选大的存在a中。

banz loop, *ar3- ;此循环中共进行3次乘法和比较。

stla, @min存放的最小值。

retend

11、 .title “

mmregs

stack .usect “stack”, 30h

bss data, 64h

data table: .word 01,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,5,3,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99

def start

textstartstm #data, ar1

rpt #mvpd table, *ar1+ ;

ld0, b

ld1, 16, b

stm #99,brcbrc赋值为99

s***ata,ar4

rptb next-1n ext-1为循环结束地址。

DSP答案

1.流水线?答 dsp芯片采用多组总线结构,允许cpu同时进行指令和数据的访问。因而,可在内部实行流水线操作。执行一条指令,总要经过取指 译码 取数 执行运算,需要若干个指令周期才能完成。流水线技术是将各个步骤重叠起来进行。既第一条指令取指 译码时,第二条指令取指 第一条指令取数时,第二条指令译码,...

DSP作业答案

第九章。1.利用gp定时器1在gpiof8引脚上产生0.2s的方波,用一个贴片led闪烁来表示。系统时钟150mhz,高速外设时钟25mhz,定时器1预分频因子的128分频,试编写相关程序。答 系统时钟150mhz,通过高速外设时钟预定标器 hispcp 得到25mhz的高速外设时钟,再通过定时器1...

DSP作业答案

1.dsp有哪些显著特点?答 dsp的特点有 1 在一个指令周期内可完成一次乘法和一次加法 2 程序和数据空间分开,可以同时访问指令和数据 3 片内有大容量的快速ram 4 快速中断处理和硬件i o支持 5 可以并行执行多个操作 6 支持流水线操作,使取指 译码和执行等操作可以重叠执行。2.简述tm...