首页 > 其他 > 详细

.align

时间:2015-12-12 01:33:55      阅读:264      评论:0      收藏:0      [点我收藏+]

.align的作用是针对指令或数据的存放地址对齐。但不同的CPU架构,指令和数据的存储方式不同,也就导致对齐的计量单位不一样。

i386:n对齐

技术分享

 

 

ARM:2^n 对齐,ARM架构下,指令都是占32位,所以是4字节对齐。

技术分享

 

当数据没有4字节对齐,编译器会报错(arm-linux-gcc (ctng-1.8.1-FA) 4.5.1),也有的编译器不会报错(有可能ldr指令的地址是6,那么在运行时b跳转肯定会出错)。
加入.align(默认4字节)对齐后,能正常编译通过。
技术分享
 
至于在uboot中看到.align  5,也就是0x20对齐,为什么要8个word对齐,暂不知道为什么? 
有空再研究
 

.align

原文:http://www.cnblogs.com/black-mamba/p/5040586.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!