首页 > 应用 > 单片机应用
[导读]ARM汇编语言以段(分为代码段和数据段)为单位组织源文件。一个ARM源程序至少要有一个代码段,大的程序可以包含多个代码段和数据段。 代码段通常是只读的, 0个或者多个包含初始值的数据段。通常可读。 0个或者多个不

ARM汇编语言以段(分为代码段和数据段)为单位组织源文件。一个ARM源程序至少要有一个代码段,大的程序可以包含多个代码段和数据段。

本文引用地址: http://www.21ic.com/app/mcu/201807/784585.htm

代码段通常是只读的,

0个或者多个包含初始值的数据段。通常可读。

0个或者多个不包含初始值的数据段。这些数据段被初始化为0,通常可读。

如:

1、入口

AREA Init,CODE,READONLY

ENTRY

--------------------ENTRY伪操作标识了程序执行的第一条指令。一个ARM程序至少要有一个ENTRY,

END告诉汇编编译器编译源文件结束,每一个汇编必须包含一个END

2、子程序调用

BL 子程序调用名称

BL指令完成两个操作,将子程序返回地址放在LR寄存器中,同时将PC寄存器的值设置成目标子程序的第一条指令地址。子程序调用通常使用寄存器R0~R3来返回结果和传递参数。

在2440init.s中有大量的子程序调用例子

;===========================================================
ReadNandID
mov r7,#NFCONF
ldr r0,[r7,#4];NFChipEn();
bic r0,r0,#2
str r0,[r7,#4]
mov r0,#0x90;WrNFCmd(RdIDCMD);
strb r0,[r7,#8]
mov r4,#0;WrNFAddr(0);
strb r4,[r7,#0xc]

;===========================================================
1;while(NFIsBusy());
ldr r0,[r7,#0x20]
tst r0,#1
beq %B1
ldrb r0,[r7,#0x10];id = RdNFDat()<<8;
mov r0,r0,lsl #8
ldrb r1,[r7,#0x10];id |= RdNFDat();
orr r5,r1,r0
ldr r0,[r7,#4];NFChipDs();
orr r0,r0,#2
str r0,[r7,#4]
mov pc,lr

-----------------------------------看到上面两个例子,唯一区别就是后面这个有mov pc,lr,这个表明这个程序完了之后会返回到这个程序BL的下一句执行。


换一批

延伸阅读

[单片机应用] ARM7入门1,跑马灯实验

ARM7入门1,跑马灯实验

用keil uvision3和proteus做的程序。主程序:/******************************************************************************/ /* This......

关键字:ARM7入门 跑马灯实验

[单片机应用] ARM7单片机(学习ing)—(一)、输入/输出端口GPIO编程—02

ARM7单片机(学习ing)—(一)、输入/输出端口GPIO编程—02

一、输入/输出端口GPIO编程一—(02)、控制LCD1602显示~~废话不多说了~~直接上图~~然后是程序~~MDK1_2.c//------------------------------------------------------......

关键字:ARM7 单片机 GPIO编程

[消费类电子新闻] Arm物联网平台生态系统再扩大,Intel也加入了

Arm物联网平台生态系统再扩大,Intel也加入了

2018年10月16日 – Arm宣布Intel、Arduino及myDevices加入Arm Pelion物联网平台生态系统,进一步强化物联网设备到数据的连接以及设备与数据的管理能力,帮助企业挖掘物联网的巨大潜力,并实现数字化转型。......

关键字:Arm物联网平台 intel

[单片机应用] ARM的37个寄存器

ARM的37个寄存器

1.ARM的7种工作模式ARMv4和ARMv5的指令集规定了ARM的7种工作模式,由寄存器CPSR[4:0]决定(见下表),分别是用户(User)模式:ARM处理器正常的程序执行状态系统(System)模式:运行具有特权的操作系统任务快速中......

关键字:ARM 寄存器

[单片机应用] 朱老师ARM裸机学习笔记(五):ARMCPU工作模式以及寄存器

朱老师ARM裸机学习笔记(五):ARMCPU工作模式以及寄存器

ARM的约定byte 8bitshalfword 16bitsword 32bitsARM Core 提供的指令集ARM指令集 32bitsThumb 指令集 16bitsThumb2 指令集 16&32bitsARM CPU的七种......

关键字:ARM裸机 工作模式 寄存器

[单片机应用] 移植嵌入式Linux到ARM处理器S3C2410:BootLoader

移植嵌入式Linux到ARM处理器S3C2410:BootLoader

BootLoader指系统启动后,在操作系统内核运行之前运行的一段小程序。通过BootLoader,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好......

关键字:移植 Linux ARM处理器 S3C2410 BootLoader

[单片机应用] 【ARM学习笔记】五、操作系统Operation System和内存管理单元MMU

【ARM学习笔记】五、操作系统Operation System和内存管理单元MMU

一、操作系统Operation System第一台计算机并没有操作系统,计算机工作采用手工操作方式,使用效率极其低下。随着计算机的性能越来越快,手工操作的慢速度和计算机的高速度之间形成了尖锐矛盾,人们迫切需要一套完整......

关键字:ARM 操作系统Operation System 内存管理单元 MMU

[单片机应用] ARM7单片机(学习ing)—(七)、脉宽调制PWM—02

ARM7单片机(学习ing)—(七)、脉宽调制PWM—02

好了,这个实验也是比较简单的~~通过按键来调整PWM的输出(这里周期不变,只是改变占空比)~~七、脉宽调制(PWM)七—(02)、可调整的PWM输出(后面的程序有一般的操作步骤,我没有进行双边沿的控制模式的实验,可以......

关键字:ARM7 单片机 脉宽调制 PWM

我 要 评 论

网友评论

芯闻号

技术子站

更多

项目外包

更多

推荐博客