DSP技术原理及应用(4.20).ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2、 循环嵌套 循环嵌套是程序编制中常用的技巧,可以用来简化较为复杂的程序。 RPT重复操作可以和块重复操作RPTB以及循环操作BANZ进行嵌套,实现多重嵌套。 三重循环嵌套程序结构: STM #L-1,AR7 ;2T loop: 外部 STM #M-1,BRC ;2T RPTB r2nd-1 ;4T 中间 中间 RPT #N-1 ;1T 内部 中间 中间 r2nd: 外部 外部 BANZ loop,*AR7- ;4T 内层 中层 外层 也可以用明确的文件名和段名来规定输入段: 一个工程中可以有多个.asm或.c为后缀的文件,经汇编后得到多个.obj的文件,如:f1.obj、f2.obj、f3.obj、f4.obj等。下面例子中明确地用文件名和段名来指定输入段。 SECTIONS { text: /*创建 .text 输出段 */ { f1.obj(.text) /*链接来自f1.obj的.text 段*/ f2.obj(sec1) /*链接来自f2.obj的sec1 段*/ f3.obj /*链接来自 f3.obj 的所有段 */ f4.obj(.text,sec2) /*链接来自f4.obj的.text 段和sec2 段 */ } } Section type 为输出段定义特殊形式的标记。 句法: type=COPY 或者 type=DSECT 或者 type=NOLOAD Fill value 对未初始化空单元定义一个数值。 句法: fill=value 或者 name : ..…{…..}=value ⒊缺省算法 如果没有利用MEMORY和SECTIONS命令,链接器就按缺省算法来定位输出段: MEMORY { PAGE0: PROG: orign=0x0080, length=0xFF00; PAGE1: DATA: orign=0x0080, length= 0xFF80 ; } SECTIONS { .text: PAGE=0 .data : PAGE=0 .cinit: PAGE=0 .bss: PAGE=1 } 将所有的.text输入段,链接成一个.text输出段,成为一个可执行的输出文件; 所有的.data输入段组合成.data输出段。 将.text和.data段定位到配置为PAGE0上的存储器,即程序存储空间。 所有的.bss输入段则组合成一个.bss输出段,并由链接器定位到配置为PAGE1上的存储器上,即数据存储空间。 如果输入文件中包含有自定义已初始化段(如上面的.cinit段),则链接器将它们定位到程序存储器,紧随.data段之后。 如果输入文件中包括有自定义未初始段,则链接器将它们定位到数据存储器,并紧随.bss段之后。 练习 1、为变量保留空间的段可以由什么段定义伪指令来建立? 2、存放可执行代码的段可以由什么段定义伪指令来建立? 3、存放初始化数据的段可以由什么段定义伪指令来建立? 4、指令LD @x,A 中的@ 起什么作用?不用该符号行吗? 1、为变量保留空间的段可以由什么段定义伪指令来建立? 答:.bss或.usect 2、存放可执行代码的段可以由什么段定义伪指令来建立? 答: .text 或.sect 3、存放初始化数据的段可以由什么段定义伪指令来建立? 答:.data或.sect 4、指令LD @x,A 中的@ 起什么作用?不用该符号行吗? 答:表示对变量x采用直接寻址。可以不用该符号而直接写x 练习答案 5、分别说明下面两条指令的作用: LD #x,DP STM #x, AR4 6、命令文件中“PAGE 0”和“PAGE 1”分别代表什么? 7、假设命令文件的SECTIONS伪指令部分为 SECTIONS { .text: PROG PAGE 0 .data: DATA PAGE 1 } 请说明其中“.text:

文档评论(0)

光光文挡 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档