DSP课后习题答案 李建 下载本文

内容发布更新时间 : 2024/6/9 9:57:58星期一 下面是文章的全部内容请认真阅读。

在程序存储器和数据存储器之间传送数据。

4, 直接寻址: 指令中包含数据存储器的低 7 位和 DP 或 SP 结合形成 16 位数据存储器地址, 它寻址速度快,用于对寻址速度要求高的场合。 5, 间接寻址: 利用辅助寄存器内 容作为地址指针访问存储器,可寻址 64 千字 X16 为字数据存储空间中任何一个单元。 它用于按固定步长寻址的场合。

6,堆栈寻址: 用于中断或子程序调用时,将数据保存或从堆栈中弹出。 7, 存储器映像寄存器(MMR)寻址: 是基地址为零的直接寻址,寻址速度快, 它用于直接用 MMR 名快速访问数据存储器的 0 页。

第四章

1、 软件开发的环境有哪几种? 在非集成开发环境中, 软件开发常采用哪些部分?

答: 可以在两种开发环境中进行 C54X 的开发: 非集成的开发环境和集成的开发环境。 在非集成开发环境中,软件开发常采用:编辑、 汇编、 链接、 调试等部分。

2、 什么是 COFF 格式? 它有什么特点?

答: 汇编器和链路器生成的目标文件,是一个可以由'C54x 器件执行的文件。 这些目 标文件的格式称为公共目标文件格式,即 COFF。

特点: 在编写汇编语言程序时,COFF采用代码段和数据段的形式,以便于模块化的编程,使编程和管理变得更加方便。

3、 说明.text 段、 .data 段和.bss 段分别包含什么内容? .text 段(文本段), 通常包含可执行代码;

.data 段(数据段), 通常包含初始化数据;

.bss 段(保留空间段), 通常为未初始化变量保留存储空间。 5、 链接器对段是如何处理的?

答:链接器将一个或多个COFF目标文件中的各种段作为链接器的输入段,经过链接后在一个可执行的 COFF 输出模块中建立各个输出段,通过情况下是将不同目标文件中的同名段进行合并,并为各个输出段分配进具体的存储器中。

6、 什么是程序的重定位?

答: 将各个段配置到存储器中,使每个段都有一个合适的起始地址;将符号变量调整到相对于新的段地址的位置;将引用调整到重新定位后的符号,这些符号反映了调整后的新符号值。 7、 宏定义、 宏调用和宏展开分别指的是什么?

答: 在调用宏之前,必须先定义宏。可以在源程序的任何位置定义宏, 宏定义的所有内容必须包含在同一个文件中。宏定义可以嵌套,即在一条宏指令中调用其他的宏指令。在定义宏之后,可在源程序中使用宏名进行宏调用。

8、 链接器能完成什么工作?链接器命令文件中,MEMORY命令和 SECTIONS命令的任务是什么?

答: 链接器将各个目 标文件合并起来, 并完成如下工作: (1) 将各个段配置到目 标系统的存储器。

(2) 对各个符号和段进行重新定位, 并给它们指定一个最终的地址。 (3) 解决输入文件之间的未定义的外部引 用。 MEMORY 命令的作用:

MEMORY 命令用来建立 DSP应用系统中的存储器模型。 通过这条命令, 可以定义系统中所 包含的各种形式的存储器,以及它们占用的地址范围。 SECTION 命令的作用: 说明如何将输入段结合成输出段; 在可执行程序中定义输出段; 规定输出段在存储器中的存 储位置; 允许重新命名 输出段。

第五章

1、能用伪指令(如data)或运算符(如ADD)作为标号吗?为什么? (参考课本P126标号区的格式要求)

2、标号和注释有什么差别?它们在程序运行中作用一样吗?

答(参考课本P129 1.标号;注释是程序的人选项。注释可以由ASCII码和空格组成。注释在汇编源清单中显示,但不影响汇编。注释在程序中的作用是说明语句的含义,以便对软件进行维护。) 3、两个数相乘,如果结果溢出,DSP系统会报警吗? 答:不会。当发生溢出时,自动将结果设置为最大或最小值。 4、伪指令起什么作用?它占用存储空间吗? 答:伪指令给程序提供数据和控制汇编过程。

它多用于代码编译的,硬件并不认识汇编语言,它们只认机器语言,程序的运行涉及由高级语言汇编成汇编语言,再由汇编语言编译成机器语言,最后由硬件执行机器语言。编译过程中,伪指令起作用,但是伪指令不产生目标代码,仅仅是帮助编译器准确的把其他指令编译出来。因此,伪指令在代码编译过程中所起的功能,在程序运行时伪指令已经不存在了,因为代码是编译好后才执行的。伪指令不占用存储空间。

5、在堆栈操作中,PC当前地址为4020H,SP当前地址为0013H,运行PSHM AR7后,PC和SP的值分别是多少?

答:PSHM AR7是压栈操作,完成后PC指针+1,堆栈指针SP-1 PC=4021H ,SP=0012H

6、试编写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 b Wait .end

Wait:

7、将定点数0.00125用浮点数表示。 解:A=28H;T=19H

8、试写出以下两条指令的运行结果: ①EXP A

A=FFFD876624 T=0000

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

B=420D0D0D0D T=FFF9

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

9、阅读以下程序,写出运行结果。 .bss y,5

table .word 1,2,3,4,5 STM #y, AR2 RPT #5

MVPD table,*AR2+ LD #0,B