第4章汇编语言程序设计 本章结合c54x的软件开发过程,介绍 DSP所采用的cOFF目标文件格式、结 构和规范。介绍汇编语言指令的重要组 成部分:伪指令和宏指令。讨论建立汇 编语言程序并产生可执行文件的设计要 求。指出汇编程序设计中的一些关键问 题,并通过实例介绍设计的方法和技巧。 参考:TMS320c54 x Assembly Language Tools User's Guide pd,SPRU102F,2002年,T官网 参考:TMS320c54 Code Composer Studio Tutorial pdf,spru327c,2000,T官网
第4章 汇编语言程序设计 本章结合C54x的软件开发过程,介绍 DSP所采用的COFF目标文件格式、结 构和规范。介绍汇编语言指令的重要组 成部分:伪指令和宏指令。讨论建立汇 编语言程序并产生可执行文件的设计要 求。指出汇编程序设计中的一些关键问 题,并通过实例介绍设计的方法和技巧。 参考:TMS320C54x Assembly Language Tools User’s Guide.pdf, SPRU102F,2002年,TI官网 参考:TMS320C54x Code Composer Studio Tutorial.pdf,spru327c,2000,TI官网
第4章汇编语言程序设计 目录: °41c54x的软件开发过程 42公共目标文件格式COFE 43汇编器的伪指令 44C54x汇编语言的有关知迟 °45汇编语言程序设让
目录: • 4.1 C54x的软件开发过程 • 4.2 公共目标文件格式COFF • 4.3 汇编器的伪指令 • 4.4 C54x汇编语言的有关知识 • 4.5 汇编语言程序设计 第4章 汇编语言程序设计
第4章汇编语言程序设计 41c54x的软件开发过程 提供2种编程语言:汇编语言 CC++语言 对于完成一般功能的代码,这两种语言都可使 用,但对于一些运算量很大的关键代码,最好采 用汇编语言来完成,以提高程序的运算效率。 c54x的软件开发过程可以分为文本编辑、编译、 汇编和连接这样四个基本步骤,如图41所示
提供2种编程语言:汇编语言 C/C++语言 对于完成一般功能的代码,这两种语言都可使 用,但对于一些运算量很大的关键代码,最好采 用汇编语言来完成,以提高程序的运算效率。 C54x的软件开发过程可以分为文本编辑、编译、 汇编和连接这样四个基本步骤,如图4-1所示。 第4章 汇编语言程序设计 • 4.1 C54x的软件开发过程
〔用C语言编程〕 文本编辑器 C源文件.c 〔用汇编语言编程 C编译器 匚文本编辑器 汇编源文件.asm 汇编器 列表文件.1st C0FF目标文件.obj 连接器 命令文件.cmd 其它的.obj 存储器映像文件 提供定位信息〕 CFF可执行文件 out 〔调试或固化代码
第4章 汇编语言程序设计
第4章汇编语言程序设计 C54x的软件开发需要借助于T公司提供的软件开 发工具:编译器、汇编器和连接器,另外还有 些辅助的软件包,如归档器、列表器和代码转换 器等 这些软件开发工具都被集成在ccs(code Composer Studio开发环境中。将在第6章详细介 绍cCs的组成及其使用方法
➢ C54x的软件开发需要借助于TI公司提供的软件开 发工具:编译器、汇编器和连接器,另外还有一 些辅助的软件包,如归档器、列表器和代码转换 器等。 ➢ 这些软件开发工具都被集成在CCS(Code Composer Studio)开发环境中。将在第6章详细介 绍CCS的组成及其使用方法 第4章 汇编语言程序设计
第4章汇编语言程序设计 4.2公共目标文件格式cOFF 汇编器和链接器生成的目标文件,是一个可以由 C54x器件执行的文件。这些目标文件的格式称之 为公共目标文件格式(COFF)。 采用这种文件格式的优点是: 将指令和数据按照段的概念进行组织和存储, 这使得程序的可读性大大增强,更容易编写程序, 更便于进行程序的移植,更利于进行模块化的程 序设计,为管理代码段及系统存储器提供了灵活 的方法和手段
汇编器和链接器生成的目标文件,是一个可以由 C54x器件执行的文件。这些目标文件的格式称之 为公共目标文件格式(COFF)。 4.2 公共目标文件格式COFF 采用这种文件格式的优点是: 将指令和数据按照段的概念进行组织和存储, 这使得程序的可读性大大增强,更容易编写程序, 更便于进行程序的移植,更利于进行模块化的程 序设计,为管理代码段及系统存储器提供了灵活 的方法和手段。 第4章 汇编语言程序设计
第4章汇编语言程序设计 COF广文件有3种类型:COFF0、COFF1、COF2 每种类型的coFF文件,其标题格式都有所不同,但 数据部分是相同的。 链接器能够读写所有类型的cOFF文件,默认时链 接器生成的是cOFF2文件,采用-n链接选项可以 选择不同类型的COFF文件
COFF文件有3种类型:COFF0、COFF1、COFF2 每种类型的COFF文件,其标题格式都有所不同,但 数据部分是相同的。 链接器能够读/写所有类型的COFF文件,默认时链 接器生成的是COFF2文件,采用-v n链接选项可以 选择不同类型的COFF文件。 第4章 汇编语言程序设计
第4章汇编语言程序设计 42,1分段结构 所谓“段”就是在存储器映像中占据连续空间的一 段独立的代码或数据。每个目标文件都分成若干段。 cOFF目标文件包含以下三个默认的段: >.text段:通常内含可执行代码; data段:通常内含已初始化数据; >.bss段:是为没有初始化的数据保留空间的 cOFF目标文件的段又可分为两大基本类型:已初 始化段和未初始化段
4.2.1分段结构 所谓“段”就是在存储器映像中占据连续空间的一 段独立的代码或数据。每个目标文件都分成若干段。 COFF目标文件包含以下三个默认的段: ➢ .text 段:通常内含可执行代码; ➢ .data段:通常内含已初始化数据; ➢ .bss段:是为没有初始化的数据保留空间的。 COFF目标文件的段又可分为两大基本类型:已初 始化段和未初始化段。 第4章 汇编语言程序设计
第4章汇编语言程序设计 口 Section(“段”)概念:一块连续的储存空间,可 存放程序或数据 口在编程时,“段”没有绝对定位,每个“段”都认为 是从地址开始的一块连续的储存空间,而无需关心这 些“段”究竟定位在系统的哪些地方 口优点:便于程序的模块化编程;便于工程化管理:可 将软件开发人员和硬件开发人员基本上分离开 口重定位:由于所有的“段”都是从0地址开始,所以程 序编译完成后是无法运行的,要让程序正确运行,必 须对“段”进行重新定位,这个工作由链接器完成。 口.cmd文件: MEMORY命令描述系统硬件资源, SECTIONS 命令描述软件人员程序中用到的“段”如何定位到恰 当的硬件资源上
❑ Section( “段”)概念:一块连续的储存空间,可 存放程序或数据 ❑ 在编程时,“段”没有绝对定位,每个“段”都认为 是从0地址开始的一块连续的储存空间,而无需关心这 些“段”究竟定位在系统的哪些地方。 ❑ 优点:便于程序的模块化编程;便于工程化管理:可 将软件开发人员和硬件开发人员基本上分离开。 ❑ 重定位:由于所有的“段”都是从0地址开始,所以程 序编译完成后是无法运行的,要让程序正确运行,必 须对“段”进行重新定位,这个工作由链接器完成。 ❑ .cmd文件:MEMORY命令描述系统硬件资源,SECTIONS 命令描述软件人员程序中用到的“段”如何定位到恰 当的硬件资源上。 第4章 汇编语言程序设计
第4章汇编语言程序设计 1已初始化段 包含程序代码、常数表格和数据。每个段都可以独 立的进行重定位,且可访问在其它段中定义的符号 已初始化段的值是不可修改的,因而一般将它们建 立在程序存储器中。 主要有: text段——已初始化段; data段—已初始化段; sect段——已初始化段,由汇编器伪指令建立 的自定义段
1.已初始化段 包含程序代码、常数表格和数据。每个段都可以独 立的进行重定位,且可访问在其它段中定义的符号。 已初始化段的值是不可修改的,因而一般将它们建 立在程序存储器中。 主要有: .text段——已初始化段; .data段——已初始化段; .sect段——已初始化段,由汇编器伪指令建立 的自定义段。 第4章 汇编语言程序设计