2019-07-14 21:23发布
xixilvtt 发表于 2015-12-22 15:45 注意上边给你贴的那段中,align指明对齐方式。可以了解下编译和链接的具体细节,甚至反汇编,winhex查看二进制文件等。。。然后恭喜你就又掉进一个坑
最多设置5个标签!
AREA 命令指示汇编程序汇编一个新的代码段或数据段。段是独立的、指定的、不可见的代
码或数据块,它们由链接程序处理。
段名:可以为段选择任何段名。但是,以一个数字开始的名称必须包含在竖杠号内,否则会
产生一个缺失段名错误。例如,|1_DataArea|。
有些名称是习惯性的名称。例如:|.text|用于表示由 C 编译程序产生的代码段,或用于以某
种方式与 C 库关联的代码段。
属性字段表示该代码段(或数据段)的相关属性,多个属性用逗号分隔。常用的属性如下:
——CODE 属性:用于定义代码段,默认为 READONLY。
——DATA 属性:用于定义数据段,默认为 READWRITE。
——READONLY 属性:指定本段为只读,代码段默认为 READONLY。
——READWRITE 属性:指定本段为可读可写,数据段的默认属性为 READWRITE。
——ALIGN 属性:使用方式为 ALIGN 表达式。在默认时,ELF(可执行连接文件)的代码
段和数据段是按字对齐的,表达式的取值范围为 0~31,相应的对齐方式为 2 表达式次方。
——NOINIT 属性:表示数据段是未初始化的或初始化为零。其只包含零初始化的空间保留
命令 SPACE 或 DCB、DCD、DCDU、DCQ、DCQU、DCW 或 DCWU。可以决定在链接时
AREA 是未初始化的还是零初始化的。
一个汇编语言程序至少要包含一个段,当程序太长时,也可以将程序分为多个代码段和数据
段
果然是个大坑。话说我汇编还没怎么学,也不打算现在学。。。
话说我的问题是生成的bin文件的大小的问题,
我昨天测了一下,const类型增加1个字节或增加4个字节都是占用4字节的flash,
增加一个16位的汇编指令,或增加2条16位的汇编指令,flash也都是占用4字节,
我现在就想知道bin文件大小是否一定是4字节的倍数。
你的意思是align对齐方式会影响bin文件的对齐方式吗?
一周热门 更多>