ARM汇编中LDR与LTORG的关系

发布者:安静的夜晚最新更新时间:2019-12-23 来源: eefocus关键字:ARM  汇编  LDR  LTORG 手机看文章 扫描二维码
随时随地手机看文章

看了arm汇编语言语法一个多月了。总算入门了。当然还有很多东西值得继续努力推敲滴。

 

最近对LDR与LTORG有了一些新的认识。

 

LDR是一个比较复制的指令。作用是从存储器到寄存器的单一数据读取指令。它有19条指令格式。


其中有两条格式为宏指令(macro),格式如下:


1,LDRRd,

2,LDR            Rd,=<32-bit-value>

 

这里重点分析下第二条宏指令。它会被编译器编译成一条指令,把给定的32位数值保存到寄存器Rd.通常这掉指令是LDRRd,[pc,#],这个32位数保存在以地址(pc+开始的一个文字池(literal pool)中。

 

关于指令LDRRd,[pc,#],大家就要复习一下arm汇编的"单寄存器load-store指令的寻址方式"了。这里使用到了它的前变址寻址方式。 pc的值不变,寻找的内存值为mem[pc+offset]。

 

LTORG用于声明一个数据缓冲池,(也称为文字池)的开始。在使用伪指令LDR时,常常需要在适当的地方加入LTORG声明数据缓冲池,LDR加载的数据暂时被编译器放于数据缓冲池中。


使用说明:

当程序中使用LDR之类的指令时,数据缓冲池的使用可能越界。为防止越界发生,可使用LTONG伪操作定义数据缓冲池。通常大的代码段可以使用多个数据缓冲池。ARM汇编编译器一般把数据缓冲池放在代码段的最后面,即下一代码段开始之前,或者END伪操作之前。

LTORG伪操作通常放在无条件跳转指令之后,或者子程序返回指令之后,这样处理器就不会错误的将数据缓冲池中的数据当作指令来执行。

 

示例代码:

AREA   Example ,CODE,READONLY;  //声明一个代码段,名称为Example,属性为只读

Start    BL  funcl

    ;code

funcl                                       //子程序

    ;code

    LDR  R1,=0x800               //将0X800加载到R1

    MOV  PC,lr                       //子程序结束

LTORG                                   //定义数据缓冲池

data   SPACE 4200               //从当前开始分配40字节的内存单元并初始化为0

END                                      //程序结束

 

0x800的值被编译器暂时放在了data[0-3]字段中。

关键字:ARM  汇编  LDR  LTORG 引用地址:ARM汇编中LDR与LTORG的关系

上一篇:浅析ARM公司在物联网领域的战略布局
下一篇:ARM中的程序状态寄存器(CPSR)

推荐阅读最新更新时间:2024-11-05 17:33

一站式智能家居电路及应用设计
设计综述 贝能国际一站式智能家居解决方案,致力实现更多智能交互。 本参考设计网关部分采用业内主流的ARM® Cortex®-MX芯片, 业内领先的基于 ARM® Cortex®-Mx系列,可在一个紧凑的封装内提供无与伦比的性能、功耗和代码密度。该系列搭载了一个EBI接口和TFT屏驱动模块,具有丰富外设,多个SPI和IIC接口,非常适合用于网关这种需要外接各种通信模块的设备。目前在该网关上实现了800*480总线型TFT彩屏驱动,触摸芯片驱动,小无线驱动,SPI FLASH芯片驱动,4G模块驱动,温湿度传感芯片驱动以及指示灯和按键,预留了Wi-Fi、蓝牙模块和多个传感模块的接口,非常适合用于一般智能家居的网关和工
[单片机]
一站式智能家居电路及应用设计
c51程序调用汇编函数的一种方法
简介:在这个例子里,阐述了编写c51程序调用汇编函数的一种方法,这个外部函数的入口参数是一个字符型变量和一个位变量,返回值是一个整型变量。例如,先用c51写出这个函数的主体,然后用SRC控制指令编译产生asm文件,进一步修改这个asm文件就得到我们所要的汇编函数。该方法让编译器自动完成各种段的安排,提高了汇编程序的编写效率。 step1. 按写普通c51程序方法,建立工程,在里面导入main.c文件和CFUNC.c文件。 相关文件如下: //main.c文件 #include reg51.h #define uchar unsigned char #define uint unsigned int extern
[单片机]
ARM7入门10,串口通信
主程序: /******************************************************************************* *File: main.C *功能: 串口发送数据 *说明: 使用外部晶振,不使用PLL,Fpclk=Fcclk/4 *******************************************************************************/ #include config.h /*********************************************************************
[单片机]
<font color='red'>ARM</font>7入门10,串口通信
ARM成功秘诀:薄利多销的智慧
速度不再重要 千万别相信企业标称的电池续航时间。他们总喜欢玩文字游戏,例如,即使号称单次充电可以“最长”续航6个小时,就算你只用了45分钟就没电了,也完全在意料之中。 话虽如此,但在看到今年推出的一批全新笔记本电脑时,你大可不必再那么警惕。苹果公司的新款13英寸MacBook Air号称具备12小时续航时间——当然,也是“最长”12小时。不过,包括我在内,很多人的测试都表明,这款产品确实可以用上一整天都不用充电。很多新款Windows笔记本也都号称具备类似的能力,我打赌其中很多都能履行承诺。跟别人争抢咖啡厅里最后一个插座的时代,似乎在一夜之间结束了。 笔记本电池续航时间为什么提升这么多?表面的原因是英特尔的新一代Has
[单片机]
ARM嵌入式的VGA接口制作
  大多数嵌入式产品的显示终端都选择LCD,但在某些需要大屏幕显示的应用中,工业级LCD的价格比较昂贵,且现有的大屏幕显示器(包括CRT显示器和LCD显示器)一般都采用统一的15针VGA显示接口。三星公司ARM9芯片S3C2410以其强大的功能和高性价比在目前嵌入式产品中得到广泛的应用。笔者在开发基于ARM嵌入式平台的血液流变测试仪的过程中,成功地利用高性能视频D/A转换芯片ADV7120,将S3C2410自带的LCD扫描式接口转换为VGA接口,使之能够驱动VGA接口的显示器。   1 VGA接口介绍   近年来,业界制定出了众多数字化的显示接口协议,较为典型的是DVI(Digital Visual Interface)。由于
[单片机]
Altera发布基于ARM的SoC FPGA系列产品
Altera公司近日发布其基于ARM的SoC FPGA系列产品,在单芯片中集成了28-nm Cyclone® V和Arria® V FPGA架构、双核ARM® Cortex™-A9 MPCore™处理器、纠错码(ECC)保护存储器控制器、外设和宽带互联等。这些SoC FPGA继承了ARM丰富的软件开发工具、调试器、操作系统、中间件和应用程序等辅助系统功能。用户可以利用Altera的SoC FPGA开发流程,迅速建立可定制基于ARM的系统,减小了各种行业中嵌入式系统的电路板面积、功耗和成本,同时提升了性能,这些行业包括,汽车、工业、视频监控、无线基础设施、计算机和存储等。 ARM处理器部门副总裁Jim Nicholas评论说:“基于2
[单片机]
arm驱动linux并发与竞态---并发控制
《 linux并发与竞态---并发控制》涉及内核驱动函数五个,内核结构体一个,分析了内核驱动函数六个;可参考的相关应用程序模板或内核驱动模板五个,可参考的相关应用程序模板或内核驱动零个 一、并发与竞态 1、并发:多个执行单元同时被执行。例如:同一个test.out可执行程序被n次同时运行 2、竞态:并发的执行单元对共享资源(硬件资源和软件上的全局变量,静态变量等)的访问导致的竞争。 a)静态的列子: char *p;//全局变量 // 读取函数 module_drv_read(struct file *file, constchar __user *buf, size_t count, loff_t * ppos)
[单片机]
Marvell 55纳米单芯片TD-SCDMA解决方案介绍
  当为数不多的TD芯片开发商今年从90纳米迈向65纳米时,Marvell公司的TD单芯片已经采用55纳米制作工艺。 Marvell以微处理器架构和数字信号处理技术称著,推出了多种平台应用于高容量存储、移动和无线产品、网络产品、消费品和环保产品,尤以混合信号设计最为出色。几年前,Marvell 凭借雄厚的技术实力,开始了与中国移动合作开发TD手机芯片解决方案项目。公司调集全球的研发力量来支持中国TD项目,将TD项目作为第一优先级任务,同时不断扩充中国研发中心。位于上海张江的中国研发中心发挥了重要作用,投入无线通讯、数字信号处理、集成电路的软硬件开发,以及集成和服务,并已提交申请20余项技术专利。   Marvell的TD-SCD
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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