ARM汇编语言程序结构示例

发布者:mu22最新更新时间:2021-05-06 来源: eefocus关键字:ARM  汇编语言  程序结构 手机看文章 扫描二维码
随时随地手机看文章

详细介绍ARM汇编语言之前,先给出一个汇编源程序示例,使读者对ARM汇编语言程序的结构有一个大概的了解。


CODE32 ;32位的ARM指令段

AREA codesec, CODE, READONLY ;代码段,名称为codesec,属性为只读

main PROC ;函数main

STMFD sp!,{lr} ;保存必要的寄存器和返回地址到数据栈

ADR r0,strhello ;取标签strhello代表的地址值

BL _ printf ;调用C运行时库的_printf函数打印

;“Hello world!”字符串

BL welcomefun ;调用子函数welcomfun

LDMFD sp!,{pc} ;恢复寄存器值

strhello ;strhello代表本地字符串的地址

DCB "Hello world!n" ;定义一段字节空间

ENDP ;函数main结束

welcomefun ;子函数welcomfun

STMFD sp!,{lr} ;保存必要的寄存器和返回地址到数据栈

ADR r0,adrstrarm ;取adrstrarm的地址放到寄存器r0中

LDR r0,[r0,#0] ;将strarm的值放到r0中

BL _ printf ;调用C运行时库的_printf函数打印

;“Welcom to ARM world!”字符串

LDMFD sp!,{pc} ;恢复寄存器值

adrstrarm ;adrstrarm标签

DCD strarm ;保存strarm的地址

AREA constdatasec, DATA, READONLY,ALIGN=0 ;数据段,名称为constdatasec,

;属性为只读

strarm

DCB "Welcome to ARM world!n" ;存放“WelcometoARM world!”

;字符串

EXPORT main ;导出main函数供外部调用

;引入3个C运行时库函数和ARM库

IMPORT _main

IMPORT __main

IMPORT _printf

IMPORT ||Lib$$Request$$armlib||, WEAK

END ;程序结束

将上面代码保存为hello.s,Windows系统下在终端输入命令行:

armcc -g hello.s -o hello.axf

将hello.s编译成映像文件hello.axf。

运行命令:

armsd -exec hello.axf

将出现下面结果:

1 ARM7TDMI, BIU, Little endian, Semihosting, Debug Comms Channel, 4GB, Mapfile,

2 Timer, Profiler, Tube, Millisecond [20000 cycles_per_millisecond], Pagetables,

3 IntCtrl, Tracer, RDI Codesequences

4 Object program file wangt.axf

5 Hello world!

6 Welcome to ARM world!

7 Program terminated normally at PC = 0x00009f70 (_sys_exit + 0x8)

8 +0008 0x00009f70: 0xef123456 V4.. : swi 0x123456

9 Quitting


关键字:ARM  汇编语言  程序结构 引用地址:ARM汇编语言程序结构示例

上一篇:Cortex-M0的RFID读卡器电路设计方案
下一篇:基于ARM的宿舍智能安防监测系统设计

推荐阅读最新更新时间:2024-11-20 20:46

基于ARM的嵌入式系统Bootloader启动流程分析
一. 引言: 对于PC机,其开机后的初始化处理器配置、硬件初始化等操作是由BIOS(Basic Input /Output System)完成的,但对于嵌入式系统来说,出于经济性、价格方面的考虑一般不配置BIOS,因此我们必须自行编写完成这些工作的程序,这就是所需要的开机程序。而在嵌入式系统中,通常并没有像 BIOS 那样的固件程序,启动时用于完成初始化操作的这段代码被称为Bootloader程序,因此整个系统的加载启动任务就完全由Bootloader 来完成。简单地说,通过这段程序,可以初始化硬件设备、建立内存空间的映射图(有的CPU没有内存映射功能如S3C44B0),从而将系统的软硬件环境设定在一个合适的状态,以便为最终调
[单片机]
基于<font color='red'>ARM</font>的嵌入式系统Bootloader启动流程分析
ARM裸板】S3C2440 时钟设置与分析
由时钟树分析,时钟源通过选择器接入给MPLL(Main PLL)与UPLL(USB PLL) 经过MPLL得到FCLK提供给CPU FCLK分别通过HDIVN与PDIVN分频得到HCLK与PCLK HCLK接入给AHB总线,再给各种高速设备(Nand Flash、内存控制器、中断控制器…) PCLK接入给APB总线,再给各种低速设别(I2C、PWM、GPIO、UART…) 1.时钟源最大值 2.时钟源 2.1 两种时钟源 1.晶振 2.外部引脚时钟输入 2.2 选择时钟源 通过改变OM 引脚来选择时钟源 JZ2440 OM 接入GND,则主时钟源与USB时钟源都选择外部晶振 3.上电时钟分析 复位等待,
[单片机]
【<font color='red'>ARM</font>裸板】S3C2440 时钟设置与分析
基于ARM7智能拆焊、回流焊台控制系统的设计
0 引言 随着电子工业的发展,电子产品越来越多,电路板上元器件的密度越来越大,并且多为贴片式元件。传统的手工焊接,比较适合直插式元件,对于贴片式焊接效果就差强人意,并且效率很低。同样,传统的的拆芯片方式,一般都用热风枪吹,这样也能够达到目的,但周围的小芯片容易被吹移位。基于以上的原因,有必要改变传统的手工焊接方式和用热风枪拆芯片的方式,采用计算机控制红外线加热的自动焊接。 近几年国内逐渐开始使用拆焊台和回流焊,但普遍存在以下问题:(1)控制芯片采用简单的单片机,以“裸奔”为主没嵌操作系统,从而导致系统过于简单或分配不合理。(2)传感器一般都采用热电偶,但不加补偿电路,而且很少在程序中采用算法,这样加热器件往往存在惯性和滞后
[单片机]
基于<font color='red'>ARM</font>7智能拆焊、回流焊台控制系统的设计
基于ARM和FPGA的CSMA/CA的MAC协议设计与实现
引言 基于CSMA/CA的MAC协议的优势在于其简单和健壮性,适用于分布式网络,每个节点无需维持和动态更新周围相邻节点的状态信息,可以独自决定何时接入信道,只要上层有数据需要传输,MAC层就会对信道进行竞争,因此该协议的应用也相当广泛。嵌入式技术的发展对MAC协议的实现也提供了很好的技术支撑。本文搭建了一种基于ARM和 FP GA相结合的嵌入式开发平台,并在此基础上设计与实现了基于CSMA/CA的MAC协议。由于ARM和FPGA本身就是可重构器件,同时将FPGA中的一些协议参数由ARM来设置,通过修改ARM的代码就可以实现对FPGA中协议功能的调整,方便快捷,不再需要重新生成比特文件下载,有利于MAC协议可重构的实现。
[单片机]
基于<font color='red'>ARM</font>和FPGA的CSMA/CA的MAC协议设计与实现
ARM紧致内存TCM的理解
ARM 的ram包括静态ram,动态ram,TCM---紧耦合内存(TCM: Tightly Coupled Memories)。 TCM是一个固定大小的RAM,紧密地耦合至处理器内核,提供与cache相当的性能,相比于cache的优点是,程序代码可以精确地控制什么函数或代码放在哪儿(RAM里)。当然TCM永远不会被踢出主存储器,因此,他会有一个被用户预设的性能,而不是象cache那样是统计特性的性能提高。 TCM对于以下几种情况的代码是非常有用、也是需要的:可预见的实时处理(中断处理)、时间可预见(加密算法)、避免cache分析(加密算法)、或者只是要求高性能的代码(编解码功能)。随着cache大小的增加以及总线性能的规模,TCM
[单片机]
Cadence全面支持Arm TCS23产品线
摘要: 新的 Arm TCS23 和 Cadence 工具提供了快速流片的途径 Cadence 微调了其 RTL-to-GDS 数字流程,并为 Arm Cortex-X4、Cortex-A720 和 Cortex-A520 CPU 以及 Immortalis-G720、Mali-G720 和 Mali-G620 GPU 提供了相应的 3nm 和 5nm RAK,为工程师提供效率和改进的结果质量 Arm 利用 Cadence Cerebrus 在其 Arm Cortex-X4 CPU 上更快地达到并超越 PPA 目标 Cadence 验证流程针对最新的 Arm CPU 和 GPU 进行了优化,使客户能够提高验证吞吐量
[半导体设计/制造]
ARM牵手香港科技大学,提供嵌入式系统设计培训
位于广东南沙信息科技园的香港科技大学嵌入式系统设计院和ARM公司共同宣布:嵌入式系统设计院成为ARM认证培训中心。嵌入式系统设计院将向大学生和专业人员提供培训课程,帮助他们提高基于ARM技术的设计和开发能力。 作为中国乃至世界最受欢迎的嵌入式系统架构之一,ARM正在成为越来越多的中国设计师在开发系统级芯片(SoC)解决方案时的首选。通过ARM认证培训中心,中国电子工程师可以获得基于ARM技术的片上系统设计和开发的培训,从而促进本地电子设计的创新。 嵌入式系统设计院院长K. David Young博士表示:“珠江三角洲是中国电子制造业的中心。很多公司现在都在开发基于ARM技术的产品,增强产品的竞争力。然而对他们来说最大的挑战之一
[焦点新闻]
Intel VS ARM:未来的移动之战
高通、三星、联发科和NVIDIA都是目前最大的移动芯片制造商,他们的市场份额综合占到了所有智能手机和平板机芯片的绝大多数。与此同时,他们还有一个共同之处,那就是旗下的CPU硬件都是基于ARM的Cortex-A系列所打造的。Intel也许依然是PC和Windows市场的主宰,但这家公司在移动市场上的境况就要严峻得多了——只有一小部分不那么成功的Windows平板和手机使用了他们的芯片产品。   ARM是如何占领整个智能手机市场的?Intel又能做什么才能挑战ARM的霸主地位呢?   Intel需要一场胜利   Intel在移动市场上的位置比较靠后,这基本上是肯定的,几乎每一位市场分析师都认为这家科技巨头选择的方向是错误的。
[模拟电子]
Intel VS <font color='red'>ARM</font>:未来的移动之战
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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