arm汇编语言学习笔记二

一、指令的后缀

       "S"  可选后缀,若指定S,则根据指令执行的结果更新CPSR中的条件码。若这条指令执行完以后,对ARM程序状态寄存器的条件码标志(N,Z,C,V)的影响。
       "! " 表示在完成数据操作以后,将更新基址寄存器,并且不消耗额外的时间。

二、#号后面加0x或&表示十六进制:#0xFF, #&FF
        #号后面加0b表示二进制。
        #号后面加0d表示十进制。    

三、R13(SP)、R14(LR)寄存器

寄存器R13常用做栈指针SP,除用户和系统模式外,其他模式在使用时的名字构成为R13_<mode>。
寄存器R14又被称为连接寄存器(LR),除用户和系统模式外,其他模式在使用时的名字构成为R14_<mode>。

A、每个处理器模式自己的物理R14中存放在当前子程序的返回地址。当通过BL或BLX指令调用子程序时,R14被设置成该子程序的返回地址。
B、当异常中断发生时,该异常模式下的R14被设置成保存该模式基于PC的返回地址,对于有些异常模式,R14的值有可能与将返回的地址有个常数 的偏移量,不同模式偏移量还有所不同。

四、IMPORT、EXPORT指令

1、IMPORT

IMPORT伪操作告诉编译器当前的符号不是在本源文件中定义的,而是在其他源文件中定义的,在本源文件中可能引用该符 号,而且不论本源文件是否实际引用该符号,该符号都将被加入到本源文件的符号表中。

语法格式:

IMPORT symbol{[WEAK]}

其中,symbol为声明的符号的名称。它是区分大小写的。

[WEAK]指定这个选项后,如果symbol在所有的源文件中都没有被定义,编译器也不会产生任何错误信息,同时编译器也不 会到当前没有被INCLUDE进来的库中去查找该符号。

2、EXPORT

EXPORT 指令声明一个符号,可由链接器用于解析不同的对象和库文件中的符号引用。 GLOBAL 是 EXPORT 的同义词

EXPORT {[WEAK]}

<code class="code"><span style="white-space:pre">	</span> EXPORT</code> <span class="replaceable" style="font-style: italic;">symbol</span> {[<span class="replaceable" style="font-style: italic;">attr</span>}]}
<code class="code"><span style="white-space:pre">	</span> EXPORT</code> <span class="replaceable" style="font-style: italic;">symbol</span> [WEAK{,<span class="replaceable" style="font-style: italic;">attr</span>}]

其中:

 symbol

 是要导出的符号名称。 符号名区分大小写。 如果省略了 symbol,则导出所有符号。

 WEAK

    仅当没有其他源导出另一个 symbol 时,才应将此 symbol 导入其他源中。 如果使用了不带 symbol 的 [WEAK],则所有导出的符 号都是   处于次要地位的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值