应用技术实训课件.ppt

应用技术实训课件.ppt

ID:57015503

大小:381.00 KB

页数:75页

时间:2020-07-26

应用技术实训课件.ppt_第1页
应用技术实训课件.ppt_第2页
应用技术实训课件.ppt_第3页
应用技术实训课件.ppt_第4页
应用技术实训课件.ppt_第5页
资源描述:

《应用技术实训课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实训基础知识:公共目标文件格式——COFFCOFF(CommonObjectFileFormat,COFF):汇编器和链接器所创建的目标文件。COFF的核心概念:使用代码块(段)和数据块(段)编程,而不是指令或数据简单的顺序编写。采用段形式的优缺点:①更利于模块化编程,管理代码段和目标系统存储器更灵活②不必为程序代码或变量指定目标地址,这为程序编写和程序移植提供了极大的方便;③能与系统存储单元充分配合;④编译系统复杂;⑤对编程人员要求高(系统存储器结构;存储器映射方式)6.1COFF文件中的段段(Sections)是COFF文件中最重要的

2、概念。段——就是在编写汇编语言源程序时,采用的代码块或数据块,它占据存储器的某个连续空间。①在编写汇编语言源程序时,程序是按段组织的;②每行汇编语句从属一个段,由伪指令标明该段的属性;③一个目标文件中的每个段都是分开的和各不相同的。所有的COFF目标文件都包含以下3种形式的段:.text段(此段通常包含可执行代码);.data段(此段通常包含初始化数据);.bss段(此段通常为未初始化变量保留存储空间)。此外,汇编器和链接器可以建立、命名和链接自定义段。①自定义段是程序员自己定义的段;②使用起来与.data、.text以及.bss段类似;

3、③它的好处是在目标文件中与.data、.text以及.bss分开汇编,链接时作为一个单独的部分分配到存储器。④有2种形式:.sect建立的自定义段是已初始化段;.usect建立的自定义段是未初始化段。汇编器根据伪指令用适当的段将各部分程序代码和数据连在一起,构成目标文件;链接器分配存储单元,即把各个段重新定位到目标存储器中。图6.1目标文件中的段与目标存储器之间的关系6.2汇编器对段的处理汇编器对段的处理是通过段定义伪指令区分出各个段,且将段名相同的语句汇编在一起。①汇编器有5个段定义伪指令支持该功能,这5个伪指令是:.bss,.usec

4、t,.text,.data,.sect②如果汇编语言程序中一个段伪指令都没有用,汇编器会把程序中的内容都汇编到.text段。③汇编器对不同类型段的处理不同。1.未初始化段未初始化段(Uninitializedsections)由.bss和.usect伪指令建立。未初始化段就是在目标存储器中的保留空间,以供程序运行过程中的变量作为临时存储空间使用。在目标文件中,这些段中没有确切的内容,通常它们定位到RAM区。未初始化段分为默认的和命名的2种,其句法如下.bss符号,字数符号.usect“段名”,字数每调用.bss伪指令一次,汇编器在相应段保

5、留预留字数的空间;每调用.usect伪指令一次,汇编器在指定的命名段保留预留字数的空间。2.初始化段初始化段(Initializedsections)由.text、.data和.sect伪指令建立,包含可执行代码或初始化数据。这些段中的内容都在目标文件夹中,当加载程序时再放到存储器中。每个初始化段都是可以重新定位的,并且可以引用其他段中所定义的符号。链接器在连接时自动处理段间的相互引用。3种初始化伪指令的句法如下:.text[段起点].data[段起点].sect“段名”[,段起点]二者的不同:当汇编器遇到.text或.data或.sec

6、t伪指令时,将停止对当前段的汇编(相当于一条结束当前段汇编的伪指令),然后将紧跟着的程序代码或数据汇编到指定的段中,直到再遇到另一条.text或.data或.sect伪指令为止。而当汇编器遇到.bss和.usect伪指令时,并不结束当前段的汇编,只是暂时从当前段脱离出来,并开始对新的段进行汇编。.bss和.usect伪指令可以出现在一个已初始化段的任何位置上,而不会对它的内容发生影响。3.自定义段.usect和.sect可以创建自定义的段。自定义段是用户自己创建的,可以同默认的.test、.data、.bss段一样使用,但它们之间是单独汇

7、编的。可为那些未初始化的、不在.bss段的变量保留空间。.usect创建同.bss段一样使用的自定义段,它在RAM中为变量保留空间。也可以汇编已初始化的、不在.data段中的数据,.sect创建像默认的.text和.data一样的段,可包含代码和数据,而且有可重定位的地址。6.段程序计数器(SPC)汇编器为每个段都安排一个单独的段程序计数器(SPC)。SPC表示一个程序代码段或数据段内的当前地址。一开始,汇编器将每个SPC置0。当汇编器将程序代码段或数据加到一个段内时,相应的SPC就增加。如果继续对某个段汇编,则相应的SPC就在先前的数值

8、上继续增加。链接器在链接时要对每个段进行重新定位。【例6.1】段伪指令应用举例。10000.data;汇编至.data段200000011coeff.word011h,022h,033h000

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

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

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