Hexagon Binutils GNU 手册(2)

240 篇文章 11 订阅
本文详细介绍了Hexagon处理器的汇编器,包括其功能、启动方式、命令行选项、输入输出文件处理、汇编列表、代码生成、符号处理及处理器版本设置。汇编器支持宏、条件文本等特性,可以生成目标代码和对象文件。用户可以通过各种选项控制汇编过程,如代码优化、错误处理和调试信息生成。
摘要由CSDN通过智能技术生成

2 组装

2.1 概述

汇编器将 Hexagon 处理器的汇编语言翻译成目标代码。汇编语言存储在源文件中,这些文件是通常用文本编辑器创建的文本文件。对象代码存储在对象文件中,对象文件是由汇编程序产生的数据文件。对象文件是以ELF格式存储的。
汇编器支持诸如宏、条件文本和包含文件等功能。本章包括以下主题:
使用汇编程序
基本语法
各科室和迁址
符号
指令
预处理
特定于处理器的特征

2.2 使用汇编程序

2.2.1 启动汇编程序

要从命令行中启动汇编程序,请键入:

hexagon-as [option...] [input_file...]

汇编器接受零个或多个源文件作为汇编语言输入。这些文件
名称必须包括名称扩展名(如果有的话)。
如果指定了多个源文件,它们的内容将按照指定的文件名顺序串联起来,并作为一个源文件的内容来处理
如果没有指定源文件,汇编器会从标准输入中读取
如果源文件是空的,汇编器将生成一个空的对象文件
命令开关是用来控制各种汇编程序选项的。一个开关由一个或两个破折号组成,后面是一个开关名称和可选参数。请注意,开关名称是区分大小写的。开关之间必须至少有一个空格。
汇编器总是产生一个单一的对象文件。如果你没有指定输出文件名(用-o开关),默认的对象文件名是a.out。
选项文件
汇编器的命令参数可以在一个文本文件中指定,而不是在命令行中指定。该文件在命令行中作为特殊命令选项@的参数被指定。比如说:`

hexagon-as @myoptions

这里名为myoptions的文件包含了hexagon-as命令的命令参数。该文件的内容被插入到命令行中,以代替指定的@file选项。
注意事项
存储在参数文件中的命令参数必须用空白字符分隔。
@file选项可以出现在参数文件中–它被递归处理。
选项帮助
要列出可用的命令选项,请键入:

hexagon-as --help

汇编器在屏幕上显示正确的命令行语法,然后是可用的命令选项列表。

2.2.2 组装选项

汇编器选项是用来从命令行控制各种汇编器功能的。
许多选项为方便使用而定义了备用的简写开关。下面列出的这些长短形式的备选方案,在功能上是等同的。
标准的选项名称也可以被截断,只要你指定足够的选项名称来唯一地识别该选项。
注意事项
选项名称的前缀可以是"-“或”-"。
这些选项是由下面列出的命令开关指定的。

-h | --help 
--alternate 
--target-help 
--version
--v
--statistics
 --mfalign-info
-o filename 
--MD filename 
-I pathname 
@filename
-a[lhsncdg][=filename] 
--listing-lhs-width width 
--listing-lhs-width2 width 
--listing-rhs-width width 
--listing-cont-lines lines
-W | --no-warn 
--warn 
--mfalign-warn 
--fatal-warnings -D
--gstabs
 --gstabs+
 --gdwarf2
-R
-Z
-G size
--mno-extender 
--mno-jumps 
--mno-jumps-long 
--mno-pairing 
--mno-pairing-duplex 
--mno-pairing-branch 
--mpairing-info
--defsym name=value 
--strip-local-absolute
-L | --keep-locals
-f --reduce-memory-overheads
-march archname 
-mcpu archname -mv4
-mv5
-mv55
2.2.2.1 装配信息

-h -help
显示汇编程序命令选项并退出。
–alternate
启用宏处理器中的附加功能(第2.6.6节)。–target-help
显示Hexagon处理器特定的汇编器命令选项并退出。
–版本
80-N2040-1 Rev. J
20代码极光论坛
-v
显示汇编器构建版本并退出。显示汇编器的构建版本。
-统计
显示汇编器在汇编输入文件时使用的内存量(以字节为单位)和执行时间(以秒为单位)。
–mfalign-info
显示.falign使用情况的统计数据(第2.6.27节)。

2.2.2.2 输入和输出文件

-o 文件名
用指定的名称命名对象文件。默认名称为a.out。
–MD filename
将包含的依赖关系写入一个指定名称的文件中。产生的文件适合作为make工具的makefile使用。
-I 路径名
使汇编器在指定路径的目录中搜索包含文件(2.6.36节)。
如果没有指定搜索路径,汇编器会假定所有的包含文件都存放在当前目录中。如果指定了多个搜索路径(用多个-I选项),汇编器将按从左到右的顺序搜索它们。
@filename
使用存储在指定文件中的命令参数(第2.2.1节)。
注意 在at符号(@)和文件名之间不能有空格。

2.2.2.3 上市

-a[lhsncdg][=filename]
用指定的列表选项生成一个汇编列表(2.2.2.3节)。
多个列表选项可以通过组合列表选项的字母在一个命令行选项中指定(例如,-aln)。
默认的列表选项是 “lhs”。
l
生成一个汇编语言列表,作为列表的一部分。
h
生成一个高级语言列表作为列表的一部分。
h必须和l一起使用(例如,-ahl)来生成一个列表,并且原始的C源程序必须已经用-g选项编译过。
s
生成一个符号表作为列表的一部分。
n
禁用表格处理。
n必须与l(例如,-anl)一起使用以生成一个列表。
c
从列表中省略假条件。
假条件是指汇编器跳过的源代码行,因为有一个
假条件指令(.if, .ifdef, .else, 等等)而被汇编器跳过的源行。c 必须与l(例如,-acl)一起使用,以生成一个列表。
d
从列表中省略调试指令。
g
包括关于汇编的一般信息(包括汇编器版本、指定的命令选项和时间戳)。
-a=文件名
将清单写到指定名称的文件中。默认的列表被写到标准输出。
文件名必须在-a选项的末尾指定(例如,’-aln=foo’)。
注意事项
列表格式和外观可以通过列表配置选项(第2.2.2.4节)和汇编指令.list, .nolist, .psize, .eject, .title和.sbttl(第2.6节)进一步控制。

2.2.2.4 上市配置

–listing-lhs-width 宽度
指定列表中对象代码部分每行显示的最大字数。默认值是1。
如果某一行产生的字数超过了指定宽度的一行所能容纳的字数,那么额外的字数就会出现在列表的后续行中(这被称为延续行)。
–listing-lhs-width2 宽度
指定列表中目标代码部分显示在延续行上的最大字数。默认值是 --listing-lhs-width 的值。
如果指定的值小于-listing-lhs-width的值,那么这个选项将被忽略。
–listing-rhs-width 宽度
指定汇编源文件行数的最大字符数。默认值是100。
–listing-contines lines
指定列表中目标代码部分的单行产生的最大续行数。
如果一个给定的行产生的字数超过了指定的延续行的数量,额外的行会被截断。
注意事项
这些选项与列表文件选项一起使用(第2.2.2.3节)。

2.2.2.5 汇总信息

-W --no-warn
抑制由汇编器产生的警告信息。
–warn
不抑制由汇编器产生的警告信息。这个选项在默认情况下是启用的。
–mfalign-warn
每当.falign指令(第2.6.27节)导致NOP指令被插入到目标代码中(无论是在现有的指令包中,还是在它自己的包中),就会产生一条警告信息。
–fatal-warnings
将警告信息视为错误信息(2.2.4节)。
-D
生成汇编器的调试信息。

2.2.2.6 代码生成

–gstabs
为每一行汇编程序生成stabs调试信息。
–gstabs+
为每一行汇编程序生成stabs调试信息(含GNU扩展)。
–gdwarf2
为每一行汇编程序生成DWARF 2调试信息。
-r
生成对象文件,将所有数据部分的数据附加到文本部分
(2.4.1节)。对象文件数据部分的长度为零。
-z
即使在生成一个或多个错误信息后,也要生成对象文件。汇编器通常不会在一个错误信息之后生成一个对象文件。
汇编器通常不会在一个错误信息之后生成一个对象文件。
当使用这个选项时,汇编器会显示一条信息,列出检测到的错误和警告的数量,并指出输出文件是无效的。
-g size
如果处理器全局数据部分(第2.4.3节)中的公共符号小于或等于指定的大小,则分配这些符号。该大小以字节为单位。默认是8。
公共符号用汇编器指令.common和.lcommon来声明(第2.6节)。
***注意事项***链接器中也支持-G选项(第3.2.2节)。
–mno-extender
禁止使用常数扩展器。
–mno-jumps
禁用分支指令的自动扩展。
–mno-jumps-long
禁用分支指令的自动扩展,这些指令的范围没有因为包指令的配对而缩短。
–mno-pairing
禁用分组指令的配对。
–mno-pairing-duplex
禁用双工指令的配对。
–mno-pairing-branch
禁用分支指令的配对。
–mpairing-info
报告指令配对的统计数据。
注意事项 --m选项只适用于V4处理器版本。它们在其他处理器版本中被忽略(第2.2.2.8节)。欲了解更多信息,请参见《Hexagon程序员参考手册》。

2.2.2.7 符号处理

–defsym name=value
定义一个可以在汇编语言中引用的符号。value必须是一个整数常数(2.3.6节)。
定义的符号可以用来控制条件指令(第2.6.35节)。
–strip-local-absolute
从生成的符号表中删除所有被赋予绝对值的本地符号。
-L
–keep-locals
在生成的符号表中保留临时符号(2.5.2节)。默认情况下,汇编器会删除临时符号。
如果在汇编器和链接器中都保留临时符号,它们可以在调试中使用。
-f
通过停止对输入文件进行空白和注释预处理来加快汇编器的速度。
这个选项只应该在装配由编译器生成的程序时使用。如果它被用于需要正常预处理的程序,汇编器将无法正常工作。
–reduce-memory-overheads
减少汇编器用于符号查找的内存量,但代价是导致更长的汇编时间。

2.2.2.8 处理器版本

-march archname
-mcpu archname
指定输出文件的目标Hexagon处理器架构(即指令集),可以是hexagonv4、hexagonv5或hexagonv55。默认是hexagonv4。
-mv4 相当于 -March hexagonv4
-mv5 相当于 -March hexagonv5
-mv55 相当于 -March hexagonv55
注意 关于处理器版本的更多信息,请参见 Hexagon Programmer’s
参考手册。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值