版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第4章汇编语言程序开发工具,4.4汇编源程序,汇编程序的功能是将汇编语言源程序转换成机器语言目标文件。这些目标文件都是通用的目标文件格式(COFF)。汇编语言源程序文件可以包含汇编命令、汇编语言指令和宏指令。汇编命令用于控制汇编过程,包括列表格式、符号定义和将源代码分成块的方式。第4章汇编语言程序开发工具,4.4汇编源程序,汇编程序包括以下功能:将汇编语言源程序汇编成一个可重定位的目标文件。obj文件)。根据需要,您可以生成一个列表文件()。lst文件)并控制列表。程序代码被分成几个段,每个段的目标代码由一个段程序计数器管理。第4章汇编语言程序开发工具,第4.4章源程序汇编,汇编程序包括以下功
2、能:定义和引用全局符号,必要时在列表文件后面附加一个交叉引用表。组装条件块。支持宏功能,并允许定义宏命令。为每个目标代码块设置一个程序计数器SPC。第4章汇编语言程序开发工具,4.4源程序汇编,4.4.1汇编程序操作。C54x的汇编程序叫做asm500.exe。要运行汇编程序,请键入以下命令:asm500输入文件目标文件列出文件选项,asm500,命令运行汇编程序ASM 500.exe。输入文件,汇编源文件名,默认扩展名为。asm。objectfile,由:汇编程序生成的C54x对象文件,带扩展名。obj。如果没有提供目标文件名,汇编程序将使用输入文件或目标文件名。list file, lis
3、t文件名由汇编程序生成,默认扩展名为. lst .-options, options of assembler,提供各种选项供汇编程序使用。第4章汇编语言编程工具,第4章汇编语言编程工具,第4章汇编语言编程工具,第4章汇编语言编程工具,第4章汇编语言编程工具,4.4.2汇编期间的列表文件。汇编程序汇编源程序时,如果采用-l选项,汇编后会生成一个列表文件。列表文件包括源程序语句和目标代码。在每个列表文件的顶部,有两行汇编标题,一个空行和一个页码行。由提供的文件名;标题命令打印在页码行的左侧;页码印在这一行的右边。源文件的每一行都会在列表文件中生成一行。其内容包括行号、程序段计数器的程控值、编译目
4、标代码和源程序语句。一条指令可以生成一两个字的目标代码。汇编程序有一个单独的第二个字行,并列出程控值和目标代码。第4章汇编语言程序开发工具,4.4.2汇编期间的列表文件。从示例4.3.1中可以看出,列表文件包括四个部分:源程序语句编号部分程序计数器目标代码源程序语句,第4章汇编语言程序开发工具,1。源程序语句的行号,用十进制数表示。汇编程序在汇编过程中对源程序的行进行编号。标题)仅列出行号,但不列出语句。汇编程序还可以在一行的左边添加一个字母,表示该行是从一个包含的文件中汇编的。汇编程序也可以在一行的左边加一个数字来表示嵌入的宏扩展或循环块的级别。2。段程序计数器,表示为十六进制数。所有细分市
5、场都有统计过程控制。一些伪指令对程控没有影响,这部分在此时是一个空白。第4章汇编语言编程工具,3。目标代码,用十六进制数表示。所有指令都被编译以生成目标代码。目标代码后面的一些标记表示您需要在链接时重新定位。未定义的外部参考;可重新定位的文本段;“可重新定位的数据段;命名段的可重定位初始化;-可以重新定位的未初始化段;%复杂的重定位表达式。4。源程序语句,它包含汇编程序搜索的源程序的所有字符。汇编程序可以接受每行200个字符。4.4.3汇编伪指令(自学)4.4.4宏定义和宏调用(自学),第4章汇编语言程序开发工具,4.4.3汇编伪指令,汇编伪指令是汇编语言程序的重要内容。用于为程序提供数据,并
6、控制汇编程序如何汇编源程序。将代码和数据组装到指定的段中,在内存中为未初始化的变量保留空间,控制清单文件是否生成初始化内存,定义全局变量,指定可以为汇编程序获取宏的库,以及检查符号调试信息。汇编伪指令可以完成以下任务:第4章汇编语言程序开发工具,4.4.3汇编伪指令,伪指令及其参数必须写在一行。在包含汇编伪指令的源程序中,伪指令可以被标记和注释。虽然标签通常不作为伪指令语法的一部分列出,但是一些伪指令必须被标记,此时,标签将作为伪指令的一部分出现。第4章汇编语言程序开发工具,4.4.3汇编伪指令,C54x汇编器有64条汇编伪指令,根据它们的功能可以分为8类:定义各种段的命令,如。bss。数据。
7、教派。文本。usect等。初始化常数(数据和内存)的命令,例如。贝斯。字节。字段。漂浮。int。日志。太空。字符串。pstring。xfloat。xlong。单词等等。第4章汇编语言程序开发工具,4.4.3汇编伪指令,调整SPC指令等。对齐等。用于格式化输出列表文件的命令,如。drlist,drnolist等。引用其他文件的命令,如复制、def。全球。包括。mlib。参考文献等。第4章汇编语言编程工具,4.4.3汇编伪指令,用于控制条件汇编的命令。休息一下。否则。埃尔塞夫。endif,endloop。如果循环等。在装配过程中定义符号的命令,例如。asg。endstruct。雌马。评估。标签。集
8、合。产品等。用于执行其他功能的命令,例如。代数。emsg。结束。嗯。mmsg。纽布洛克。sblock。版本,vmsg等。第4章汇编语言程序开发工具,4.4.3汇编伪指令,1定义段的伪指令,用于定义相应汇编语言程序的段。第4章汇编语言程序开发工具,以及伪指令的使用示例4.4.2。1 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2 *开始编译到。文本部分* 3 * * * * * * * * * * * * * * * *。定义文本段;初始值为1,2;初始值为3,4,第4章汇编语言程序开发工具,以及段落示例4.
9、4.2中伪指令的使用。8 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 9 *开始组装到。数据段* 10 * * * * * * * * * * * * * * *。10 000001 000a13 00002 000b。用于定义段的伪指令;定义数据段;初始值为9,10;初始化值是第4章汇编语言程序开发工具的第11和12节,以及第示例4.4.2段中伪指令的使用。15 * * * * * * * * * * * * * * * * * * * * * * * * * * * *
10、* * * * * * * * * * * * * 16 *开始组装到指定的初始化段* 17 * var _ defs * 18 * * * * * * * * * * * *。定义命名段;初始值为第4章汇编语言程序开发工具的第17和18节,以及第示例4.4.2段中伪指令的使用。22 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 23 *然后继续编译到。数据部分* 24 * * * * * * * * * * * * * * *。14 000005 000e 27 000000。b系统,19 28 0
11、00006 000f。用于定义段的伪指令;继续编译数据段;初始值是13和14;定义未初始化的段并保留19个空格;还在;数据部分;初始值为第4章汇编语言程序开发工具的第15和16节,以及第示例4.4.2段中伪指令的使用。,30 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 31 *然后继续编译到。文本部分* 32 * * * * * * * * * * * * * * * * *。6 000005 0006 35 000000 usym。使用ct xy ,20 36 000006 000
12、7。单词7,8 000007 0008,1用于定义段的伪指令;继续汇编文本段落;初始值为5,6;定义xy线段并保留20个空间;还在;文本部分;初始值是第4章汇编语言程序开发工具的第7、8节,以及第示例4.4.2段中伪指令的使用。text用值1、2、3、4、5、6、7、8初始化单词;数据初始值为9、10、11、12、13、14、15、16个字;Var_defs用值17和18初始化单词;bss保留19个单词的空间;usect保留20个单词的空间。1定义了段的伪指令,以及。bss和。既不结束当前线段,也不开始新线段。它们保留了特定数量的空间,然后汇编程序开始将代码或数据汇编到当前段中。第4章汇编语言
13、程序开发工具,4.4.3汇编伪指令,以及2个初始化伪指令,用于为当前段汇编常数值。第4章汇编语言编程工具,第2章初始化常数的伪指令,第4章汇编语言编程工具,示例4.4.3比较的伪指令。字节。int。再见。xlong。漂浮。xfloat。单词和。字符串。源程序:byte0aah,0 bbh . word 0 ccch . XL long 0 eeeffffh . long 0 eeeffffh . int 0 dddh . xfoat 1 . 99999 . float 1 . 99999 . string help , byte:将一个或多个8位值放入当前段落的连续单词中。word:将一个或多
14、个16位值放入当前段落的连续单词中。xlong:将32位值放入当前段的两个连续字中,并首先保存最高有效位。long:将32位值放入当前段的两个连续字中,并首先保存最高有效位。int:将一个或多个16位值放入当前段的连续字中。xfloat:初始化一个单精度(32位)浮点数,并将其保存在当前段的两个连续字中。float:初始化一个单精度(32位)浮点数,并将其保存在当前段的两个连续字中。string:将一个或多个字符串中的8位字符放入当前段。第4章汇编语言程序开发工具,列表文件,1 000000 00aa。字节0aH,0BBh 000001 00bb 2 000002 0ccc。word 0CCC
15、h 3 000003 0eee。xlong 0 eee effh 000004 efff 4 000006 eee。long 0EEFFFfH 000007 ffff 5 000008 dddd。int 0DD DDh 6 000009 3fff。x float 1.99999 00000 a ffac 7 00000 c 3 fff。浮子1.99999 00000d ffac 8 00000e 0068。字符串“help”00000 f 0065 000010 006 c 000011 0070,long:自动与最近的长单词边界对齐,xlong3360不自动与最近的长单词边界对齐,xfloa
16、t:不自动与长单词边界对齐,第4章汇编语言程序开发工具,第2章初始化常数的伪指令。字段伪指令:功能:将单个值放入当前字的指定位字段。使用。字段伪指令,可以将多个字段或域打包成一个单词,直到该单词被填充,并且汇编程序不添加SPC。指令格式:字段值、位大小、单值、当前字的指定位字段、第4章汇编语言程序开发工具、第2章初始化常数的伪指令,以及。字段伪指令。field5,3.field9,6.field16,5.field01234h,20.field01234h,32 . field 5,3 . field 9,6 . field 16,5 . field 01234h,20,101,1 0 0 1 0 0 0 1 0 0 0 0,0 0 0 1 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 0 0,0 1 0 1 0 1 0 0 0 0 0 0 0 0,0 1 0 0 0,0,0123h,0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0字段01234h,32
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年财务共享中心升级与成本管控智能化
- 2026年团队创新能力培养与激发方法
- 某麻纺厂生产事故处理规程
- 中国电子技集团公司第七研究所2026届校园招聘备考题库附答案详解(培优)
- 2026云南西双版纳州勐腊县紧密型县域医共体招聘16人备考题库有答案详解
- 2026浙江杭州淳安县综合社会福利院招聘5人备考题库附答案详解ab卷
- 2026山东青岛城运控股集团有限公司招聘备考题库及答案详解(易错题)
- 2026湖北武汉工商学院2026年校园招聘备考题库附答案详解(夺分金卷)
- 2026河北省事业单位辅助岗位人员招聘4人备考题库含答案详解(考试直接用)
- 2026浙江台州市文化馆招聘编外人员1人备考题库及答案详解(新)
- 中国绝经管理与绝经激素治疗指南(2023版)解读
- 百年商埠-梧州课件
- T-ZBDIA 0004-2024 预辊涂铝锌镁高强合金板应用技术标准
- 07第七章-药品上市后再评价与监测管理
- 工业设计方法学
- 八年级国家义务教育质量监测德育考核试题
- 医用氧气使用检查记录表
- 英美文学选读教案
- 新松agc小车控制台tc操作手册
- 二类费用工程建设其他费用取费标准集合上海市
- 西安水务公司招聘考试真题
评论
0/150
提交评论