第七章_DSP的汇编伪指令[详版课资]

上传人:桔**** 文档编号:570821722 上传时间:2024-08-06 格式:PPT 页数:86 大小:1.60MB
返回 下载 相关 举报
第七章_DSP的汇编伪指令[详版课资]_第1页
第1页 / 共86页
第七章_DSP的汇编伪指令[详版课资]_第2页
第2页 / 共86页
第七章_DSP的汇编伪指令[详版课资]_第3页
第3页 / 共86页
第七章_DSP的汇编伪指令[详版课资]_第4页
第4页 / 共86页
第七章_DSP的汇编伪指令[详版课资]_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《第七章_DSP的汇编伪指令[详版课资]》由会员分享,可在线阅读,更多相关《第七章_DSP的汇编伪指令[详版课资](86页珍藏版)》请在金锄头文库上搜索。

1、第七章 汇编程序语法 TMS320TMS320的汇编程序包含:的汇编程序包含:1.1.汇汇 编编 语语 言言 指指 令令 ( assembly assembly language language instructionsinstructions)、)、2. 2. 汇编指令(伪指令,汇编指令(伪指令,assembler directivesassembler directives)、)、3. 3. 宏指令(宏指令(macro directivesmacro directives)4. 4. 注释(注释(commentscomments)。)。11 汇编代码和数据到指定的段;2 为未定义的变量保

2、存空间;3 控制列表文件;4 分配存储器;5 汇编条件块;6 定义全局变量;7 指定汇编器能得到的宏;8 检查符号调试信息。 汇汇编编伪伪指指令令为为程程序序提提供供数数据据、控控制制汇汇编编过过程程。所作的工作包括:所作的工作包括:21.伪指令前为小数点。2.伪指令在运行时不起作用,汇编及调试时起作用。3.伪指令是实质是指挥控制汇编器汇编。3编译器编译器汇编汇编.asm不可执行不可执行.obj可执行可执行.out汇编器汇编器4汇编语言工具TMS320的的汇汇编编语语言言工工具具是是一一个个软软件件包,其中包括包,其中包括:1.汇编器汇编器2.连接器连接器3.归档器归档器4.交叉引用列表器交叉

3、引用列表器5.十六进制转换公用程序十六进制转换公用程序5汇编器(Assembler) 将将汇汇编编语语言言的的源源程程序序文文件件汇汇编编成成为为机机器器语语言言的的目目标标程程序序文文件件,其其格格式式为为COFF(公公用用目目标标文文件件格格式式)。汇汇编编语语言言源源程程序序可可以以包包括括汇汇编编语语言言指指令令(instruction)、汇汇编编指指令令(assembler directives)和和宏宏指指令(令(macro directives)。)。6连接器(Linker) 连连接接器器的的基基本本任任务务是是将将目目标标文文件件连连接接在在一一起起,产产生生可可执执行行模模块

4、块。连连接接器器可可以以接接受受的的输输入入文文件件包包括括汇汇编编器器产产生生的的COFF目目标标文文件件、命命令令文文件件、库库文文件件、以以及及已已部部分分连连接接好好了了的的文文件件。它它所所产产生生的的可可执执行行COFF目目标标模模块块可可以以装装入入各各种种开开发发工工具具,或或由由TMS320器件来执行。器件来执行。7归档器(Archiver) 归档器允许用户将一组文件归入归档器允许用户将一组文件归入一个档案文件(库)。例如,将若一个档案文件(库)。例如,将若干个宏归入一个宏库,汇编器将搜干个宏归入一个宏库,汇编器将搜索这个库,并调用源文件中使用的索这个库,并调用源文件中使用的

5、宏。也可以用归档器将一组目标文宏。也可以用归档器将一组目标文件收入一个目标文件库,连接器将件收入一个目标文件库,连接器将连接库内的成员,并解决外部引用。连接库内的成员,并解决外部引用。8交叉引用列表器(Cross-Reference Lister) 交叉引用列表器是一个查错的工交叉引用列表器是一个查错的工具。它接受已经连接好的目标文件具。它接受已经连接好的目标文件作为输入,产生一个交叉引用列表作为输入,产生一个交叉引用列表作为输出。它列出符号、符号的定作为输出。它列出符号、符号的定义、以及它们在已经连接的源文件义、以及它们在已经连接的源文件中的引用。中的引用。9十六进制转换公用程序(Hex C

6、onversion Utility)将将COFF目标文件转换成为若干种标准的目标文件转换成为若干种标准的文件格式:文件格式:1.ASCII-十六进制十六进制2.Extended Tektronix3.Intel MCS-864.Motorola Exorciser5.TI SDSMAC10公共目标文件格式 汇编器和链接器产生的目标文件,是一个可以在TMS320 DSP上执行的文件,称为公共目标文件格式(Common Object File Format),缩写为COFF。由于COFF在编写汇编语言程序时采用代码和数据块的形式,因此便于模块化的编程,这些代码和数据块称为段。所谓段是指连续占有存储

7、空间的一个数据或代码块。在编写汇编语言源程序时,程序按段组织,每行汇编语句都从属一个段。段是目标文件中可重新定位的最小单元,每个目标程序中的每个段通常是分开的和各不相同的。11COFF中至少包含以下三个默认段: .text段(文本段)通常包含可执行代码; .data段(数据段)通常包含己初始化的数据; .bss段(保留空间段)通常为未初始化的数据保留空间。 段有两种基本类型,已初始化段和未初始化段.1.未初始化段仅仅在目标系统存储器中保留空间,以供程序运行过程的变量作临时存储空间使用,可由汇编伪指令.bss和.uset创建。2.己初始化段包含可执行代码或者已初始化数据,这些段的内容存储在目标文

8、件中,当程序装入时存放在存储器中。每个己初始化段可独立地进行重定位,且可以访问在其他段中重定义的符号。12 自定义段由用户自己定义,和默认段的使用相同,但它们被单独汇编,可由以下3个指令来创建自定义段: 符号.usect“段名”,字数 符号.sect“段名”,字数(建立的块可重定位) 符号.asect“段名”,地址(建立具有绝对地址的块) .usect建立的段是在RAM中为变量保留空间(类似于.bss段),.sect建立的是包含代码或数据的段(类似于.text段和.data段)。 汇编器确定汇编语言程序的各个部分属于哪一个特定的段,汇编器有六个命令来完成这种功能,即:用于创建未初始化段.bss

9、, .usect和用于创建已初始化.text, .data, .sect,.asect,如果程序未作说明,则统一汇编到.text段中。 13链接器的主要功能是将段定位至目标存储器中。确定段地址的工作一般由链接器来完成,由于大部分系统一般包含多个不同类型的存储器(EPROM RAM等),采用段可以使用户更有效地利用目标存储器,所有的段可以独立进行定位。因此可以将不同的段分配至各种目标存储器中,加强程序的灵活性和可移植性。14伪指令(Assembler Directives)汇编伪指令汇编伪指令15段定义伪指令v.bss 在该段中保留若干字在该段中保留若干字v.data 汇编入已初始化的数据段汇编

10、入已初始化的数据段v.sect “section name” 汇编入已命名的段汇编入已命名的段v.text 汇编入可执行的代码段汇编入可执行的代码段.bss page,128 在在 .bss段中为段中为page定义定义128个字。个字。16初始化常数伪指令v.float 初始化一个初始化一个32-bit的浮点常数的浮点常数v.int 初始化一个或多个初始化一个或多个16-bit的整数的整数v.string 初始化一个或多个字符串初始化一个或多个字符串v.word 初初始始化化一一个个或或多多个个16-bit的的整整数数.bss x, 4, 1.word 0012h17格式化输出列表的伪指令v.

11、list 开始源文件列表开始源文件列表v.nolist 停止源文件列表停止源文件列表v.length 设置源文件列表的页长度设置源文件列表的页长度v.title 在列表文件每一页打印文件名在列表文件每一页打印文件名18引用其他文件的伪指令v.copy /.include 包含其他文件的源语句包含其他文件的源语句v.global 确认一个或多个全局确认一个或多个全局(外部外部)符号符号v.mlib 定义宏库定义宏库.include f240.h.global aa19条件汇编伪指令v.if/.else/.endif 条件汇编代码块条件汇编代码块v.loop/.endloop 循环汇编代码块循环汇

12、编代码块v.break 终止循环汇编代码块终止循环汇编代码块20汇编时的符号v.equ/.set 使一个符号等于一个值使一个符号等于一个值v.end 结束程序结束程序aa .equ 0012h21宏语言vMacro: A user-defined routine that can be used as an instructionv汇汇编编器器支支持持宏宏语语言言,使使用用户户可可以以建建立立自自己己的的“指指令令”。当当程程序序要要将将特特定定的的任任务务执执行行若若干干次次时时,尤其有用尤其有用。相当于子程序。相当于子程序。22宏语言可以使用户:l定义自己的宏,或重新定义正执行的宏定义自己

13、的宏,或重新定义正执行的宏l简化长的或复杂的汇编代码简化长的或复杂的汇编代码l访问由归档器建立的宏库访问由归档器建立的宏库l在一个宏内定义条件块和可重复的块在一个宏内定义条件块和可重复的块l在一个宏内操作字符串在一个宏内操作字符串l 控制展开列表控制展开列表23定义宏 在在程程序序中中使使用用宏宏之之前前,首首先先必必须须定定义义它它。可可以用两种方法来定义:以用两种方法来定义:( 1) 在在 源源 文文 件件 开开 始始 处处 定定 义义 ; ( 2) .include/.copy文件中定义;文件中定义;(3)在宏库中定义。)在宏库中定义。24定义宏macname .macro parame

14、ter model statements .mexit .endm25定义宏vmacname 宏的名字宏的名字v.macro 是一个伪指令,确认源语句为是一个伪指令,确认源语句为宏定义的第一行宏定义的第一行vparameters 选项,作为选项,作为.macro伪指令伪指令的操作数的操作数vModel statements 每次调用宏时执行的每次调用宏时执行的指令或伪指令指令或伪指令v.endm 终止宏定义终止宏定义26定义宏举例* add3 p1, p2, p3 (形参)(形参)* p3 = p1 + p2 + p3 add3 .macro p1, p2, p3 lacc p1 add p2

15、 add p3 .endm27调用宏 在源程序中用宏的名字作为操作码在源程序中用宏的名字作为操作码来调用宏来调用宏. add3 x, y, z (实参)实参)28展开宏 在源程序调用宏时,汇编器将其展开。在源程序调用宏时,汇编器将其展开。 在在展展开开时时,汇汇编编器器将将变变量量传传递递给给宏宏参参数数,用用宏宏定义取代宏调用语句,然后汇编其源代码。定义取代宏调用语句,然后汇编其源代码。 在省缺情况下,宏展开打印在列表文件中。在省缺情况下,宏展开打印在列表文件中。 可以用伪指令可以用伪指令 .mnolist 来停止其展开的列表。来停止其展开的列表。29展开宏0000 2000 lacc x0

16、001 0001 add y0002 0002 add z* Reserve space for vars0000 .bss x, 10001 .bss y, 10002 .bss z, 130宏库 定定义义宏宏的的一一种种方方法法是是建建立立一一个个宏宏库库。宏库是包含有宏定义的文件的集合。宏库是包含有宏定义的文件的集合。 必必须须使使用用归归档档器器来来把把这这些些文文件件收收集集到到一个文件中。一个文件中。 宏宏库库中中的的每每一一个个成成员员都都包包含含一一个个宏宏定定义义。该该文文件件必必须须是是未未汇汇编编的的源源文文件件。宏宏名名字字和和文文件件名名必必须须相相同同,且且宏宏文文

17、件件名名的的扩展名必须是扩展名必须是.asm31访问宏库用伪指令用伪指令.mlib来访问宏库,其语法为来访问宏库,其语法为: .mlib macro library filename当汇编器识别到该伪指令时,就打开该宏当汇编器识别到该伪指令时,就打开该宏库,并建立该宏库内容的表。库,并建立该宏库内容的表。32汇编器输出的列表文件汇编器输出的列表文件:1 *2 * Assemble into the .text section. *3 *4 0000 .text5 0000 e800 LD #0, A6 *7 * Allocate 4 words in .bss for TEMP. *8 *9

18、0000 Var_1: .bss TEMP, 4103311 *12 * Still in .text *13 *14 0001 f000 ADD #56h 0002 005615 0003 f066 MPY #73h 0004 0073163417 *18 * Allocate 100 words in .bss for the *19 * symbol named ARRAY; this part of *20 * .bss must fit on a single page. *21 *22 0004 .bss ARRAY, 100, 12324 *25 * Assemble more

19、code into .text. *26 *27 0005 8000ADD Var_1283529 *30 * Declare external .bss symbols. *31 *32 .global ARRAY, TEMP33 .end36连接器连接器-m-m选择项建立映射列表文件选择项建立映射列表文件-m filename该连接器映射列表描述:该连接器映射列表描述:存储器划分;存储器划分;输入与输出段的位置;输入与输出段的位置; 外部符号重新定位后的地址。外部符号重新定位后的地址。37 当当没没有有发发现现错错误误时时,连连接接器器就就建建立立一一个个输输出出模模块块,省省缺缺名名为为

20、a.out。也也可可以以使使用用-o选择项,将输出模块写入另外的文件:选择项,将输出模块写入另外的文件:-o filename 其其中中:的的文文件件名名就就是是新新的的输输出出模模块块的的文件名。文件名。38lnk200 o run.out file1.obj file2.obj 将将ile1.obj 和和 file2.obj 连接起来,连接起来,建立一个名为建立一个名为run.out 的输出模块。的输出模块。39写入一个命令文件link.cmd :a.obj /* First input filename */b.obj /* Second input filename */-o prog

21、.out /* Option to specify output file */-m prog.map /* Option to specify map file */并用该命令文件来调用连接器:lnk200 link.cmd40包含连接器伪指令的命令文件包含连接器伪指令的命令文件:a.obj b.obj c.obj /* Input filenames */-o prog.out -m prog.map /* Options */MEMORY /* MEMORY directive */RAM: origin = 100h length = 0100hROM: origin = 01000h

22、 length = 0100h SECTIONS /* SECTIONS directive */.text: ROM.data: ROM.bss: RAM41MEMORYPAGE 0 : name 1 (attr) : origin = constant , length = constant;PAGE n : name n (attr) : origin = constant , length = constant;PAGE 说说明明一一个个存存储储器器空空间间。用用户户最最多多可可以以说说明明255页页。通通常常,page0是是程程序序存存储储器器,page1是数据存储器。是数据存储器。

23、name 命命名名一一个个存存储储器器范范围围。一一个个存存储储器器的的名名字字可可以以是是18个个字字符符,其其中中包包括括AZ,az,$,.,_。42Attr 存储器的属性:存储器的属性:R 存储器可读;存储器可读;W 存储器可写;存储器可写; X 存储器可包含可执行代码;存储器可包含可执行代码;I 存储器可以初始化。存储器可以初始化。43origin 指定存储器的开始地址;指定存储器的开始地址;length 指定存储器范围的长度;指定存储器范围的长度;fill 为为存存储储器器范范围围指指定定一一个个填填入入的的字字符,其值是符,其值是2-byte的整常数。的整常数。44TMS320TM

24、S320省缺的地址配置:省缺的地址配置:MEMORYPAGE 0: PROG: origin = 0x0080 length = 0xFF00PAGE 1: DATA: origin = 0x0080 length = 0xFF80SECTIONS.text: PAGE = 0.data: PAGE = 0.cinit: PAGE = 0 ;cflag option only.bss: PAGE = 145连接器使用举例连接器使用举例 本本例例连连接接三三个个目目标标文文件件demo.obj、fft.obj和和 tables.obj,并并建建立立输输出出文文件件demo.out。符符号号SET

25、UP是是程程序序的输入点。的输入点。46连接器命令文件连接器命令文件 demo.cmddemo.cmd/*/* Specify Linker Options */*/-e coeff /* Define the program entry point */-o demo.out /* Name the output file */-m demo.map /* Create an output map */*/* Specify the Input Files */*/demo.objfft.objtables.obj47/*/* Specify the Memory Configuration

26、s */*/MEMORYPAGE 0: RAM_PG: origin=00080h length=06F80hROM: origin=0C000h length=03F80hPAGE 1: ONCHIP: origin=00080h length=0F7FhEXT: origin=01000h length=0EFFFh48/*/* Specify the Output Sections */*/SECTIONS.text: load = ROM, page = 0 /* link .text into ROM */var_defs: load = ONCHIP, page=1 /* defs

27、 in RAM */.data: fill = 07A1Ch, load=ONCHIP, page=1tables.obj(.data) /* .data input */fft.obj(.data) /* .data input */. = 100h; /* create hole, fill with 07A1Ch */ /* and link with ONCHIP */.bss: load=RAM_PG,page=0,fill=0FFFFh/* Remaining .bss; fill and link */49映射文件映射文件demo.mapdemo.mapOUTPUT FILE N

28、AME: ENTRY POINT SYMBOL: 0MEMORY CONFIGURATION Name origin length attributes fill - - - - PAGE 0: RAM_PG 00000080 000006f80 RWIX ROM 0000c000 000003f80 RWIXPAGE 1: ONCHIP 00000080 000000f7f RWIX EXT 00001000 00000efff RWIX50SECTION ALLOCATION MAPoutput attributes/section page originlengthinput secti

29、ons- - - - -.text00000c000000000150000c000 00000008 demo.obj (.text)0000c008 00000007 fft.obj (.text)0000c00f 00000006 tables.obj (.text)var_defs 1 00000080 0000000200000080 00000002 demo.obj (var_defs).data 1 00000082 0000010800000082 00000000 tables.obj (.data)00000082 00000000 fft.obj (.data)0000

30、0082 00000100 fill = 7a1c00000182 00000008 demo.obj (.data)51.bss 0 00000080 0000007b00000080 00000013 demo.obj (.bss) fill=ffff00000093 00000000 fft.obj (.bss)00000093 00000068 tables.obj(.bss)fill=ffffxy 1 0000018a 00000014 UNINITIALIZED0000018a 00000014 demo.obj (xy) GLOBAL SYMBOLSaddress name ad

31、dress name- -00000080 .bss 00000080 .bss00000082 .data 00000082 .data0000c000 .text 00000093 TEMP00000097 ARRAY 00000097 ARRAY00000093 TEMP 000000fb end0000018a edata 0000018a edata000000fb end 0000c000 .text0000c015 etext 0000c015 etext8 symbols525354C语言来写程序编译器编译问题5556 输入是输入是C源文件。读入源语句,源文件。读入源语句,检查

32、语法和语意错误,写出一个检查语法和语意错误,写出一个中间文件(中间文件(.if)57 可选择项。其输入是分析器产生可选择项。其输入是分析器产生的中间文件(的中间文件(.if)。当运行优化器)。当运行优化器时,用户可以选择优化的层次。产时,用户可以选择优化的层次。产生一个与中间文件格式相同的高效生一个与中间文件格式相同的高效率版本。率版本。58 输入是分析器或优化器产生的输入是分析器或优化器产生的中间文件(中间文件(.if或或.opt文件),产文件),产生一个汇编语言源文件。生一个汇编语言源文件。59内部列表公用程序内部列表公用程序 输入是输入是C编译器产生的汇编语编译器产生的汇编语言源程序和言

33、源程序和C源程序。产生的是源程序。产生的是按按C文件的语句展开的汇编语言文件的语句展开的汇编语言源文件。源文件。60C 优化编译器 TI 为为其其TMS320系系列列 DSP提提供供了了系系列列的的 C 编编译译器器。将将标标准准 C 源源文文件件编编译译成成为为相相应应片片种种的的汇汇编编语语言言源源代代码码文文件件,进进而汇编和连接,产生可执行的目标文件。而汇编和连接,产生可执行的目标文件。 这这些些 C 编编译译器器符符合合ANSI C 标标准准;有有运运行行支支持持库库;一一个个外外壳壳程程序序(shell program)可可以以一一步步将将 C 源源代代码码翻翻译译成成为为TMS3

34、20的目标代码。的目标代码。61C 优化编译器主要特点 1.完全符合完全符合ANSI C标准标准 2.带带有有一一个个完完整整的的运运行行支支持持库库,包包括括字字符符串串操操作作,动动态态存存储储器器分分配配,数数据据转转换换,三三角角、指指数数和和双双曲曲线线函函数数等等。可可以以对对运运行支持函数库和用户定义函数库作扩展行支持函数库和用户定义函数库作扩展62C 优化编译器主要特点 使用多种先进技术来从使用多种先进技术来从 C 源代码产源代码产生高效汇编代码。通用优化可用于生高效汇编代码。通用优化可用于任何任何 C 代码,而对各片种的专门优代码,而对各片种的专门优化更适应该片种的结构特点。

35、通过化更适应该片种的结构特点。通过简化循环、重新安排语句和表达式、简化循环、重新安排语句和表达式、将变量安排入寄存器等方法来改善将变量安排入寄存器等方法来改善执行速度执行速度,减小减小 C 程序的大小。程序的大小。63C 优化编译器主要特点 归档器公用程序(归档器公用程序(Archiver Utility),将文件归入单一的档案文),将文件归入单一的档案文件或库中,可以对库作文件的添加、件或库中,可以对库作文件的添加、删除、替换等。可以将目标文件库删除、替换等。可以将目标文件库作为连接器的输入。作为连接器的输入。64C 优化编译器主要特点 公用目标文件格式(公用目标文件格式(COFF,Comm

36、on Object File Format)使)使用户能够在连接时定义自己系统的用户能够在连接时定义自己系统的存储器映射,将存储器映射,将 C 代码和数据连接代码和数据连接到特定的存储区域,从而最大限度到特定的存储区域,从而最大限度地改善其性能。地改善其性能。COFF还为源程序一还为源程序一级的查错提供强有力的支持。级的查错提供强有力的支持。65C 优化编译器主要特点 包含一个外壳程序(包含一个外壳程序(Shell Program),只用一个命令,就可),只用一个命令,就可以编译、汇编、和连接,直接从以编译、汇编、和连接,直接从C原原文件产生可执行的文件产生可执行的COFF文件。文件。66C

37、优化编译器主要特点 多种列表文件:多种列表文件:(1)汇编语言源文件,可以有选择地)汇编语言源文件,可以有选择地包括内部列表、包括内部列表、C源代码及使用寄存源代码及使用寄存器的信息;器的信息;(2)预处理输出文件;)预处理输出文件;(3)带有行号和操作码的汇编列表文)带有行号和操作码的汇编列表文件。件。67C 编译器的优化 C编译器的效率取决于所作的优化的编译器的效率取决于所作的优化的范围和数量。范围和数量。TMS320的的C编译器能编译器能作很宽范围的多种优化,从而改善作很宽范围的多种优化,从而改善其编译所得代码的效率。其编译所得代码的效率。 TMS320的的C编译器所作的优化分为编译器所

38、作的优化分为适用于所有处理器的通用优化和针适用于所有处理器的通用优化和针对特定片种的专门优化。对特定片种的专门优化。68通用优化改变表达式,字符简化,常数合并改变表达式,字符简化,常数合并将表达式简化成为要求较少指令和较少寄将表达式简化成为要求较少指令和较少寄存器的等价形式:存器的等价形式:(a+b) - (c+d) - (a+b)-c)-d)a = (b+4) - (c+1) - a = b - c + 369通用优化数据流优化数据流优化 使用较少代价的表达式,检测出并使用较少代价的表达式,检测出并去除不必要的赋值,避免再计算已去除不必要的赋值,避免再计算已经计算过的值。经计算过的值。70通

39、用优化优化转移优化转移/ /简化控制流简化控制流 分析程序的转移判断情况,重新安分析程序的转移判断情况,重新安排操作顺序,消去转移或多余的条件。排操作顺序,消去转移或多余的条件。71通用优化优化循环相关变量,例如:优化循环相关变量,例如: 为数组元素设置下标的代码改为指针增为数组元素设置下标的代码改为指针增量的代码;索引量的代码;索引AR0AR0 用计数器控制的循环写成块循环,或使用计数器控制的循环写成块循环,或使用高效的增用高效的增/ /减量转移指令减量转移指令RPTRPT。 80%80%程序量用于控制,程序量用于控制,20%20%程序量用于计算;程序量用于计算; 20%20%程序量要用程序

40、量要用80%80%时间用于计算;时间用于计算;72通用优化 在循环中总是计算同样值的表达式,在循环中总是计算同样值的表达式,移到循环外面。移到循环外面。73针对特定片种的专门优化 将地址寄存器将地址寄存器(AR)作为指针来使用。作为指针来使用。当数组下标结构成为循环变量时,当数组下标结构成为循环变量时,这种优化特别有效。这种优化特别有效。74针对特定片种的专门优化 以省时为基础的寄存器配置以省时为基础的寄存器配置 根据变量的类型、使用的情况和频根据变量的类型、使用的情况和频率,将寄存器配置存放变量和暂时率,将寄存器配置存放变量和暂时使用的值。循环中使用的变量的优使用的值。循环中使用的变量的优先

41、级高于其他变量;不再重复使用先级高于其他变量;不再重复使用的变量可以配置到同一个寄存器。的变量可以配置到同一个寄存器。75针对特定片种的专门优化 通过使用块循环指令通过使用块循环指令RPT来支持零开来支持零开销循环。销循环。 使用寄存器来传递函数的自变量。使用寄存器来传递函数的自变量。76运行运行C编译器编译器cl200 -options filenames -z link_options object filescl200调用编译器和汇编器的命令。调用编译器和汇编器的命令。-options 影响编译器处理输入文件的途径影响编译器处理输入文件的途径filenames 一一个个或或多多个个C源源

42、文文件件、汇汇编编语语言言源源文件,或目标文件。文件,或目标文件。-z 运行连接器的选择项。运行连接器的选择项。link_options 影影响响连连接接器器处处理理输输入入文文件件的的途途径径object files 命名编译器产生的目标文件命名编译器产生的目标文件77cl200 -q symtab file seek.asm z 编译文件编译文件symtab和和file,汇编,汇编第三个文件第三个文件seek.asm,连接这,连接这三个文件,并使用三个文件,并使用quiet选择项,选择项,抑制输出处理信息抑制输出处理信息78如果不使用如果不使用-q选择项,就会输出以下处选择项,就会输出以下

43、处理信息:理信息:symtabTMS320 ANSI C Compiler Version x.xxCopyright (c) 1997 Texas Instruments Incorporated“symtab.c”= main“symtab.c”= lookupTMS320 ANSI C Codegen Version x.xxCopyright (c) 1997 Texas Instruments Incorporated“symtab.c” = main“symtab.c” = lookup79 TMS320 COFF Assembler version x.xxCopyright 1997 Texas Instruments IncorporatedPASS 1PASS 2No Errors, No Warnings80818283848586

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号