ARM汇编杂项伪指令

杂项伪指令

杂项伪指令在汇编编程设计较为常用,如段定义伪指令,入口点设置伪指令,包含文件伪指令,标号导出或引入声明等,该类伪指令如下:
         边界对齐: ALIGN。
         段定义: AREA。
         指令集定义: CODE16 和CODE32。
         汇编结束: END。
         程序入口: ENTRY。
         常量定义: EQU。
         声明一个符号可以被其它文件引用:EXPORT 和GLORBAL。
         声明一个外部符号:IMPORT 和EXTERN。
         包含文件:GET 和INCLUDE。
         包含不被汇编的文件:INCBIN。
         保留符号表中的局部符号:KEEP。
         禁止浮点指令:NOFP。
         指示两段之间的依赖关系:REQUIRE。
         堆栈8 字节对齐:PEQUIRE8 和PRESERVE8。
         给特定的寄存器命名:RN。
         标记局部标号使用范围的界限:ROUT。

 

ALIGN------         ALIGN 伪指令通过添加补丁字节使当前位置满足一定的对齐方式。

         伪指令格式:
         ALIGN {expr{,offset}}
         其中:expr 数字表达式,用于指定对齐的方式。取值为2 的n 次幂,如1、2、4、8等,不能为0 其没有expr,则默认为字对齐方式。
         offset 数字表达式,当前位置对齐到下面形式的地址处:offset+n*expr
         在下面的情况中,需要特定的地址对齐方式:
         (A)Thumb 伪指令ADR 要求地址是字对齐的。而Thumb 代码中地址标号可能不是字对齐的。这时就要使用伪指令ALIGN4 使Thumb 代码中地址标号为字对齐。
         (B)由于有些ARM 处理器的Cache 采用了其他对齐方式。如16 字节对齐方式,这时使用ALIGN 伪指令指定合适的对齐方式可以充分发挥Cache 的性能优势。
         (C)LDRD 和STRD 指令要求存储单元为8 字节对齐。这样在为LDRD/STRD 指令分配的存储单元前要使用伪指令ALIGN8 实现8 字节对齐方式。
         (D)地址标号通常自身没有对齐要求,而在ARM 代码中要求地起标号对齐是字对齐的,Thumb 代码中要求半字对齐。这样可以使用ALIGN4 和ALIGN2 伪指令来调整对齐方式。
         伪指令应用举例如下。
         通过ALIGN 伪指令使程序中的地址标号字对齐:
         AREA Example,CODE,READONLY ;声明代码段Example
         START LDR R0,=Sdfjk
         

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值