ARM汇编的.balignl对齐实验
来源:互联网 发布:银行家算法实验分析 编辑:程序博客网 时间:2024/05/22 17:43
转载!
原文http://www.cnblogs.com/Efronc/archive/2012/02/22/2363106.html
作者Efronc
在u-boot的start.s源文件中出现“.balignl 16 0xdeadbeef”语句,这条语句是实现地址对齐的。
.balignl与. align类似,完整的laign语句格式为:.align {alignment} {,fill} {,max}
alignment用于指定对齐方式,可能的取值为2的次幂,缺省为4。fill是填充内容,缺省用0填充。max是填充字节数最大值,如果填充字节数超过max, 不进行对齐。
下面分4种情况进行对比:
1.正常情况
.word 0x12345678 /* now 16*4=64 */
.global _end_vect
_end_vect:
.balignl 16,0xdeadbeef
//.word 0x12345678 /* now 16*4=64 */
.global _end_vect
_end_vect:
.balignl 16,0xdeadbeef
3.填充三个字
.word 0x12345678 /* now 16*4=64 */
.word 0x12345678 /* now 16*4=64 */
.global _end_vect
_end_vect:
.balignl 16,0xdeadbeef
4.超过限制不填充
.word 0x12345678 /* now 16*4=64 */
.word 0x12345678 /* now 16*4=64 */
.global _end_vect
_end_vect:
.balignl 16,0xdeadbeef,8
原文http://www.cnblogs.com/Efronc/archive/2012/02/22/2363106.html
作者Efronc
在u-boot的start.s源文件中出现“.balignl 16 0xdeadbeef”语句,这条语句是实现地址对齐的。
.balignl与. align类似,完整的laign语句格式为:.align {alignment} {,fill} {,max}
alignment用于指定对齐方式,可能的取值为2的次幂,缺省为4。fill是填充内容,缺省用0填充。max是填充字节数最大值,如果填充字节数超过max, 不进行对齐。
下面分4种情况进行对比:
1.正常情况
.word 0x12345678 /* now 16*4=64 */
.global _end_vect
_end_vect:
.balignl 16,0xdeadbeef
此时.balignl位于的地址是0x50,恰好是16的倍数,所以不填充。如图所示:
//.word 0x12345678 /* now 16*4=64 */
.global _end_vect
_end_vect:
.balignl 16,0xdeadbeef
此时将0x12345678注释掉,.balignl位于的地址是0x4c,不是16的倍数,所以要使用0xdeadbeef进行填充。如图所示:
3.填充三个字
.word 0x12345678 /* now 16*4=64 */
.word 0x12345678 /* now 16*4=64 */
.global _end_vect
_end_vect:
.balignl 16,0xdeadbeef
此时加多一个0x12345678,使.balignl的地址位于0x54,不是16的倍数,所以要填充到0x5f,内容使用指定的0xdeadbeef。如图所示:
4.超过限制不填充
.word 0x12345678 /* now 16*4=64 */
.word 0x12345678 /* now 16*4=64 */
.global _end_vect
_end_vect:
.balignl 16,0xdeadbeef,8
此时限制填充最多8个字节,但是需要填充12个字节,所以不填充。如图所示:
阅读全文
1 0
- ARM汇编的.balignl对齐实验
- GUN ARM的汇编的.balignl 16,0xdeadbeef 实验
- arm汇编实验-arm指令集的应用
- ARM汇编实验-工作模式
- align&&balignl代码对齐测试
- ARM的内存对齐
- ARM的字对齐
- ARM LED裸机实验(gun汇编)
- ARM汇编的几个问题
- ARM汇编的几个问题
- ARM汇编的必知必会
- ARM 汇编的必知必会
- ARM的汇编学习
- arm 体系的汇编
- ARM的汇编指令
- .balignl的意义
- 【实验】Arm汇编和C语言混合编程实验
- ARM下的对齐处理
- 0717-0721周结
- Hibernate 实体类注解
- 两个队列实现一个栈
- Java学习路线图及一些Java学习网站
- Android Studio常用快捷键
- ARM汇编的.balignl对齐实验
- select2如何设置默认空值
- UVA129KryptonFactor
- Spring boot (一) Hello World
- strchr, strrchr, strchrnull
- windows2003的vpn服务提示800错误
- 网络的使用-安卓基础知识整理
- call apply callee和caller之间的区别
- Android 水平加载图片 自定义 HorizontalScrollView,防止一次性加载出现性能问题,防止OOM