当前位置:首页 > 嵌入式 > 嵌入式教程
[导读]armasm是ARM汇编语言的交叉编译器,本节将详细介绍它的使用方法。

10.4ARM汇编编译器的使用

armasm是ARM汇编语言的交叉编译器,本节将详细介绍它的使用方法。

armasm命令行语法格式如下。

armasmoptionsinputfile

在armasm命令中,除了文件名区分大小写之外,其他的参数都不区分大小写。option可是汇编器规定选项中的一个或多个的组合,多个选项用空格分开。下面详细介绍armasm的各参数。

·--16:告诉汇编器当前程序是Thumb指令程序,使用旧的Thumb语法,与在源程序开头使用伪操作CODE16意义相同。使用--thumb选项指定当前程序是使用ARM语法的Thumb或Thumb-2源程序。

·--32:告诉汇编器所处理的源程序是ARM指令的程序。此选项为汇编器的默认选项。

·--apcs[qualifiers]:该选项告诉汇编器是否使用AAPCS标准编译源程序。详见AAPCS一节。

·--arm:同--32选项。

·--bigend:告诉汇编器将源程序按大端模式编译。汇编器默认为小端模式(littleend)。

·--brief_diagnostics:控制输出诊断信息。详见控制诊断信息输出一节。

·--littleend:告诉编译器将源程序按小端模式编译。这是汇编器的默认选项。

·--checkreglist:告诉汇编器检测RLIST、LDM、STM指令的寄存器列表是否按升序排列。使用此选项后,如果源程序中寄存器没有按升序排列,汇编器将给出警告信息。

·--cpuname:告诉汇编器允许程序所使用的CPU型号,详见CPU名一节。

·--debug:告诉编译器编译时产生DWARF格式的调试信息表。

·--dependdependfile:告诉编译器将程序的依赖关系列表输出到指定的dependfile文件中。当使用makefile文件对程序进行编译时,该选项十分有用。

·--diag_[error|remark|warning|suppress|style]:详见控制诊断信息输出一节。

·--dllexport_all:告诉编译器产生全局变量的动态可见列表(dynamicvisibility),在将源程序编译成DLL文件时使用该选项。

·--dwarf2:和--debug选项配合使用。告诉编译器编译时产生DWARF2格式的调试信息表,当使用了--debug选项时,该选项为默认选项。

·--dwarf3:和--debug选项配合使用。告诉编译器编译时产生DWARF3格式的调试信息表。

·-m:告诉编译器将源文件的依赖关系列表输出到标准输出设备上。

·--md:告诉编译器将源文件的依赖关系列表输出到inputfile.d文件中。

·--errorserrorfile:告诉编译器将编译的错误信息输出到errorfile文件中。

·--exceptions:详见指示编译器产生异常向量表一节。

·--exceptions_unwind:详见指示编译器产生anwind异常向量表一节。

·--fpmodemodel:详见10.4.3。

·--fpuname:选择指定目标系统中浮点运算单元的体系结构。

·-idir[,dir]…:为源文件搜索增加路径,如果要搜索的源文件路径已被此选项指定,那么在使用伪操作GET、INCLUDE、INCBIN包含源文件时,将不必指定搜索路径。

·--keep:指定汇编器将局部符号保留在目标文件的符号表中,供调试器进行调试时使用。

·--list[listingfile]:告诉汇编器将汇编过程中产生的汇编程序列表保存到列表文件listingfile文件中。

·--maxcachen:指定最大的源程序cache大小,默认为8MB。

·--memaccessattributes:确定目标系统的内存属性。详见内存访问属性一节。

·--no_cache:禁止源程序cache。默认情况下源程序cache是打开的。

·--no_esc:禁止C风格的特殊符号,如“\n”、“\t”。

·--no_exceptions:详见异常向量表产生一节。

·--no_exceptions_unwind:详见异常向量表产生一节。

·--no_hide_all:控制符号的可见性。

·--no_regs:告诉编译器不使用汇编器预定义的寄存器名。

·--no_warn:禁止警告信息。

·-ofilename:给输出的目标文件命名。

·--predefine“directive”:告诉编译器预执行SET伪操作。详见预执行SET伪操作一节。

·--split_ldm:详见LDM和STM指令。

·--thumb:告诉编译器将源文件编译为符合ARM语法的Thumb指令。此编译选项和在源文件头使用THUMB伪操作效果相同。

·--unsafe:降低汇编器的警告级别。详见控制针对信息输出一节。

·--viafile:指示汇编器从指定文件file中读取各选项信息。

·inputfile:为输入的源程序,必须是ARM或Thumb汇编源程序。

下面各节详细介绍以上选项中常用到的选项。

10.4.1选项说明列表

在命令行输入下面的汇编命令,可使汇编器输出所有可用选项类别。

armasm–help

10.4.2过程调用标准AAPCS

为了使不同编译器编译的程序之间能够相互调用,必须为子程序间的调用规定一定的规则。AAPCS就是这样一个标准。所谓AAPCS,其英文全称为ProcedureCallStandardfortheARMArchitecture(AAPCS),即ARM体系结构过程调用标准。它是ABI(ApplicationBinaryInterface(ABI)fortheARMArchitecture(basestandard)[BSABI])标准的一部分。

可以使用“--apcs”选项告诉编译器将源代码编译成符号AAPCS调用标准的目标代码。

注意

使用“--apcs”选项并不影响代码的产生,编译器只是在各段中放置相应的属性,标识用户选定的AAPCS属性。

与AAPCS相关的编译/汇编选项有以下几种。

·none:指定输入文件不使用AAPCS规则。

·/interwork:指定输入文件符合ARM/Thumb交互标准。

·/nointerwork:指定输入文件不能使用ARM/Thumb交互。这是编译器默认选项。

·/ropi:指定输入文件是位置无关只读文件。

·/noropi:指定输入文件是非位置无关只读文件。这是编译器默认选项。

·/pic:同/ropi。

·/nopic:同/noropi。

·/rwpi:指定输入文件是位置无关可读可写文件。

·/norwpi:指定输入文件是非位置无关可读可写文件。

·/pid:同/rwpi。

·/nopid:同/norwpi。

·/fpic:指定输入文件编译成位置无关只读代码。代码中地址是FPIC地址。

·/swstackcheck:编译过程中对输入文件使用堆栈检测。

·/noswstackcheck:编译过程中对输入文件不使用堆栈检测。这是编译器默认选项。

·/swstna:如果汇编程序对于是否进行数据栈检查无所谓,而与该汇编程序连接的其他程序指定了选项/swst或选项/noswst,这时该汇编程序使用选项/swstna。

10.4.3浮点模式选项

“--fpmodemodel”选项指定所选的浮点模式。可使用的浮点模式有以下几种。

·ieee_full:所有的浮点操作符号IEEE标准,其中包括单精度浮点操作和双精度浮点操作。浮点模式可以在使用时动态选择。使用该选项,编译器将使用下面的预定义符号。

__FP_IEEE;

__FP_FENV_EXCEPTIONS;

__FP_FENV_ROUNDING;

__FP_INEXACT_EXCEPTION。

·ieee_fixed:符合IEEE标准的浮点运算异常处理规则。使用该选项,编译器将使用下面的预定义符号。

__FP_IEEE;

__FP_FENV_EXCEPTIONS。

·ieee_no_fenv:和JAVA兼容的浮点运算算法选择。预定义的符号为__FP_IEEE。

·std:和C和C++兼容的浮点运算算法选择。这是编译器默认选项。

·fast:快速浮点运算选项。使用该选项将影响浮点运算的精度。

10.4.4为CPU命名选项

使用“--cpuname”选项为目标程序使用的CPU命名。其中name的取值为4T、5TE或6T2。编译器的默认值为ARM7TDMI。

下面的选项使编译器列出所有当前可使用的CPU名。

armasm--cpulist

10.4.5为FPU命名选项

选项“--FPU”指定所使用的浮点运算单元的结构。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭