• .align


    .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对齐,暂不知道为什么? 
    有空再研究
     
  • 相关阅读:
    if..endif 语法
    WordPress程序流程分析
    php锁表
    jQuery入门必须掌握的一些API
    集合栈
    回文链表
    链式A+B
    链表分割
    访问单个节点的删除
    链表中倒数第k个结点
  • 原文地址:https://www.cnblogs.com/black-mamba/p/5040586.html
Copyright © 2020-2023  润新知