ARM汇编----IMPORT

发布者:chuyifei最新更新时间:2016-08-13 来源: eefocus关键字:ARM汇编  IMPORT 手机看文章 扫描二维码
随时随地手机看文章
IMPORT伪操作告诉编译器当前的符号不是在本源文件中定义的,而是在其他源文件中定义的,在本源文件中可能引用该符号,而且不论本源文件是否实际引用该符号,该符号都将被加入到本源文件的符号表中。

语法格式:

IMPORT symbol{[WEAK]}

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

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

使用说明:

使用IMPORT伪操作声明一个符号是在其他源文件中的定义。如果连接器在连接处理时不能解析该符号,而IMPORT伪操作中没有指定[WEAK]选项,则连接器将会报告错误。如果连接器在连接处理时不能解析该符号,而IMPORT伪操作中指定了[WEAK]选项,则连接器将不会报告错误,而是及进行下面的操作:

  • 如果该符号被B或者BL指令引用,则该符号被设置成下一条指令的地址,该B或者BL指令相当于一条NOP指令
  • 其他情况下该符号被设置为0
关键字:ARM汇编  IMPORT 引用地址:ARM汇编----IMPORT

上一篇:成功移植NET-SNMP到ARM平台
下一篇:ARM堆栈方式

推荐阅读最新更新时间:2024-03-16 15:04

ARM汇编文件的组成和汇编指令类型
ARM汇编文件的组成 指令:编译完成后作为一条指令(机器码)存储在内存单元中,CPU执行时能够完成处理的操作 伪指令:在编译时替换成能被识别的ARM指令 伪操作:知道编译器进行编译,编译完成后不生成指令,也不占用内存空间。 ARM汇编指令类型 数据处理指令 跳转指令:实现程序执行过程中的跳转 Load/Store指令:CPU与内存数据之间的操作指令 状态寄存器存送指令:对状态寄存器操作(只能使用这些指令对状态寄存器操作) 协处理器指令:对协处理器进行操作 异常产生指令:产生异常(软中断),实现模式切换
[单片机]
GNU ARM汇编快速入门
以前用ARM的IDE工具,使用的是ARM标准的汇编语言。现在要使用GNU的工具,当然要了解一点GNU ARM汇编的不同之处。其实非常的简单,浏览一下文档然后再看看程序就完全可以搞定了,或者你硬着头皮看GNU ARM的汇编程序,用不了多少时间你就就可以无师自通了。 ARM汇编语言源程序语句 ,一般由指令、伪操作、宏指令和伪指令作成。ARM汇编语言的设计基础是汇编伪指令,汇编伪操作和宏指令。 目前常用的ARM编译环境有2种: ARMASM: ARM公司的IDE中使用了CodeWarrior的编译器,绝大多数windows下的开发者都在使用这一环境,完全按照ARM的规定; GNU ARM ASM:GNU工具的ARM版本,与ARMASM
[单片机]
ARM汇编器所支持的伪指令
  在ARM汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,它们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序做各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成了。   在ARM的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令及其他伪指令。   1.符号定义(Symbol Definition)伪指令   符号定义伪指令用于定义ARM汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作。常见的符号定义伪指令有如下几种。   ·用于定义全局变量的GBLA、GBLL
[单片机]
嵌入式ARM汇编详解
ARM嵌入式开发中经常会涉及到汇编指令的知识,这里就总结一下最常用的几种ARM汇编指令。 零.预备知识 这里我们主要学习ARM的汇编指令,这些预备知识只是作为一个了解。 1.ARM与X86 要了解ARM,最好的是使用对比的方法。 ARM是一款32位的低功耗RSIC(精简指令集)微处理器。我们常了解的CPU可能就是办公中常用到的X86架构的计算机,X86使用的就是CSIC(复杂指令集),比如很有名的Intel处理器,下面就通过分析一下ARM架构与X86架构的区别来认识ARM: ARM的特点是: 体积小、低功耗、高性能 支持Thumb(16位)和ARM(32位)双指令 指令执行效率高 寻址方式简单 指令长度固定
[单片机]
嵌入式<font color='red'>ARM汇编</font>详解
ARM学习笔记9——ARM汇编汇编语言中的伪指令
  ARN汇编器支持ARM伪指令,这些伪指令在汇编阶段被翻译成ARM或Thumb指令。ARM伪指令包含ADR、ADRL、MOV32和LDR。 一、ADR伪指令   1、作用     ADR是小范围地址读取伪指令,基于PC相对偏移地址或基于寄存器相对偏移地址读取到寄存器中,当地址值是字节对齐时,取值范围为-255到255,当地址值是字对齐时,取值范围-1020到1020   2、语法格式     ADR{ condition }{.W} register,label   3、参数说明     3.1、.W:可选项,指定指令宽度     3.2、register:目标寄存器     3.3、label:基于PC或具有寄存器的表达式
[单片机]
ARM汇编中LDR与LTORG的关系
看了arm汇编语言语法一个多月了。总算入门了。当然还有很多东西值得继续努力推敲滴。 最近对LDR与LTORG有了一些新的认识。 LDR是一个比较的指令。作用是从存储器到寄存器的单一数据读取指令。它有19条指令格式。 其中有两条格式为宏指令(macro),格式如下: 1,LDR cond type Rd, label 2,LDR cond Rd,= 32-bit-value 这里重点分析下第二条宏指令。它会被编译器编译成一条指令,把给定的32位数值保存到寄存器Rd.通常这掉指令是LDR cond Rd, ,这个32位数保存在以地址(pc+ offset 开始的一个文字池(literal pool)中。
[单片机]
GNU ARM汇编--(十六)bootloader与kernel之间
在 《GNU ARM汇编--(十五)linux下的printascii》 中已经初步分析了自己写的bootloader在引导kernel时候出现的commandline在bootloader和kernel之间传递的问题,今天终于解决了,并对参数传递有一些研究: 传递的参数为: view plain copy params- u1.s.page_size = LINUX_PAGE_SIZE; params- u1.s.nr_pages = (DRAM_SIZE LINUX_PAGE_SHIFT); params- commandline 设定为 noinitrd root
[单片机]
ARM汇编语言的程序结构
一个ARM汇编语言源程序的基本结构: AREA Init, CODE, READONLY ENTRY     Start   LDR R0, =0x3FF5000   LDR R1, 0xFF   STR R1,   LDR R0, =0x3FF5008   LDR R1, 0x01   STR R1,   ... ... ... ... ... ...   END   在 ARM( Thumb)汇编语言程序中,以程序段为单位组织代码。   段是相对独立的指令或数据序列,具有特定的名称。段可以分为代码段和数据段,代码段的内容为执行代码,数据段存放代码运行时需要用到的数据。一个汇编程序至少应该有一个代码段,当程序较长时,
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved