dsp程序编写和调试环境简介.ppt

dsp程序编写和调试环境简介.ppt

ID:51992026

大小:1.60 MB

页数:38页

时间:2020-03-27

dsp程序编写和调试环境简介.ppt_第1页
dsp程序编写和调试环境简介.ppt_第2页
dsp程序编写和调试环境简介.ppt_第3页
dsp程序编写和调试环境简介.ppt_第4页
dsp程序编写和调试环境简介.ppt_第5页
资源描述:

《dsp程序编写和调试环境简介.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章:程序编写和调试环境简介4.1程序的编写4.2调试环境代码编译器CC简介4.3调试一个程序的简单步骤4.4头文件和命令文件4.1程序的编写汇编伪指令分成7类(根据功能):定义段的伪指令;初始化常数的伪指令;调准段程序计数器的伪指令;引用其他文件的伪指令;条件汇编伪指令;在汇编时定义符号的伪指令;执行其他功能的伪指令。4.1程序的编写1.段定义伪指令作用:把汇编语言程序的各个部分划分在适当的段中。.asect创建具有绝对地址的初始化命名段;.bss为未初始化的变量保留空间;.sect定义已初始化的

2、带命名段,其后的数据存入该段;.text该段包含了可执行的代码;.usect在一个未初始化的有命名的段中为变量保留空间。.data通常包含了初始化的数据;段是通过叠加方式来建立的。例如在汇编器第一次遇到.data伪指令时,data指令后面的语句都被汇编在.data段中(直到汇编器遇到.text和.sect伪指令为止)。如果后来又在其他的段中遇到.data指令,其后的语句继续加到.data段中。这样虽然程序中是多个.data段分散在各处,但汇编器只创建一个.data段,它可以连续地被分配到内存中。4.1

3、程序的编写2.常数初始化伪指令.bes和.space在当前段中保留特点的位。汇编器用0填充这些保留位。用户可以通过把位数乘16来保留规定的字数。当使用.space的标号时,指向保留位的第一个字;当使用.bes标号时,指向保留位的最后一个字。.byte把一个或多个8位的值放入当前段的连续字中。该指令类似于.word,不同之处在于.word中的每个值的宽度限制为16位。.field将单个数值置入当前字规定的位数中。.float和.bfloat计算以IEEE格式表示的单精度(32位)浮点数,并存放在当前段的

4、连续字中,高位先存。.float能自动按域的边界排列,.bfloat不能。.int和.word把一个或多个16位数存放到当前段的连续字中。.int为无符号整型量,.word为带符号整型量。.long和.blong把32位数存放到当前段连续的两个字中,高位字先存。.long能自动按长字的边界排列,.blong却不能。.string把8位的字符从一个或多个字符串中传送到当前段中。4.1程序的编写3.段程序计数器(SPC)定位指令.align使SPC对准1字(16位)~128字的边界,这保证了紧接着该指令的

5、代码从一个整字或页的边界开始。如果SPC已经定位于选定的边界,它就不会增加了。.align伪指令的操作数必须等于20~216之间的一个2的幂值(尽管超过27的值没有意义)。不同的操作数代表了不同的边界定位要求。操作数为1是让SPC对准字边界;操作数为2是让SPC对准长字(偶地址)边界;操作数为128是让SPC对准页边界;不带操作数时,其默认值为128,即对准页边界。.even调准SPC,使其指向下一个完整字。在使用.field伪指令之后,用户应当使用.even。如果.field指令未填满一个字,那么.

6、even指令将使汇编器填满全字,并把未用的位填0。4.1程序的编写4.引用其他文件的伪指令.copy/.include伪指令告诉汇编器开始从其他文件中读源语句。当汇编读完以后,继续从当前文件中读源语句。从.copy文件中读的语句会打印在列表中,而从.include文件中读的语句不会打印在列表中。.def确认一个在当前模块中定义的且能被其他模块使用的符号,汇编器把这个符号存入符号表中。.ref确认一个在当前模块中使用但在其他段中定义的符号。汇编器把这个符号标注成一个未定义的外部符号,且把它装入目标符号表

7、中,以便链接器能还原它的定义。.global表明一个外部符号,使其他模块在连接时可以使用。如果在当前段定义了该符号,那么该符号就可以被其他模块使用,与.def功能相同;如果在当前段没有定义该符号,则使用了其他模块定义的符号,与.ref功能相同。一个未定义的全局符号只有当它在程序中使用的时候,链接器才对其进行处理。4.1程序的编写5.控制条件汇编的伪指令.if/.elseif/.else/.endif这些指令告诉汇编器,根据表达式的值条件汇编一块代码。.if表示一个条件块的开始,如果条件为真就汇编紧接着

8、的代码;.elseif是表示如果.if的条件为假,而.elseif的条件为真,就汇编紧接着的代码;.endif结束该条件块。.loop/.break/.endloop告诉汇编器按照表达式的值循环汇编一块代码。.loop标注一块循环代码的开始;.break告诉汇编器当表达式为假时,继续循环汇编,当表达式为真时,立刻转到.endloop后的代码去执行;.endloop标注一个可循环块的末尾。4.1程序的编写6.在汇编时定义符号的伪指令作用:汇编时的定义符号指

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。