下载此文档

嵌入式课件(宋晖)课件 26 ARM程序设计基础.ppt


文档分类:IT计算机 | 页数:约71页 举报非法文档有奖
1/71
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/71 下载此文档
文档列表 文档介绍
ARM程序设计基础
ARM程序设计基础
在嵌入式系统程序设计中,大量使用了C语言进行编程。
在有些程序中,使用汇编语言进行编程则更加方便、简单,甚至是不可替代的,例如初始化硬件的代码、启动代码等。
,中间也可以使用C语言中的转义字符,比如:“abcdef\0xa\r\n”
逻辑常量:{TRUE},{FALSE},注意带大括号
ARM汇编语言程序格式
代码段示例:
汇编语言源程序的基本结构:
AREA Init , CODE , READONLY
ENTRY
Start
LDR R0 , =0x3FF5000
LDR R1 , 0xFF
STR R1 , [R0]
LDR R0 , =0x3FF5008
LDR R1 , 0x01
STR R1 , [R0]
┉┉
END
ARM汇编语言程序格式
ARM体系中通常有以下3种方式控制程序的执
行流程:
在正常执行过程中,每执行一条ARM指令,程序计数器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器寄存器(PC)加2个字节。整个过程是按顺序执行。
跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。
当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。
ARM汇编程序设计
顺序结构程序
顺序结构是按照逻辑操作顺序,从某一条指令开始逐条顺序执行,直至某一条指令为止。
AREA EXAMPLE,CODE,READONLY
ENTRY ;程序入口
Start ;程序开始
MOV R0,#10 ;将立即数10放入寄存器R0
MOV R1,#3 ;将立即数3放入寄存器R1
ADD R0,R0,R1 ;将R1和R0相加,结果放入 R0
END ;程序结束
ARM汇编程序设计
选择分支结构程序
单分支结构程序
ARM汇编程序设计
选择分支结构程序
多分支结构
ARM汇编语言中的子程序调用
在 ARM 汇编语言程序中,子程序的调用一般是通过
BL 指令来实现的。在程序中,使用指令:
BL 子程序名
该指令在执行时完成如下操作:将子程序的返回地址
存放在连接寄存器 LR 中,同时将程序计器PC 指向子程
序的入口点,当子程序执行完毕需要返回调用处时,只
需要将存放在 LR 中的返回地址重新拷贝给程序计数器
PC即可。在调用子程序的同时,也可以完成参数的传递
和从子程序回运算的结果,通常可以使用寄存器 R0 ~
R3 完成。
ARM汇编语言中的子程序调用
BL 指令调用子程序的汇编语言源程序的基本结构:
AREA Init , CODE , READONLY
ENTRY
Start
LDR R0 , =0x3FF5000
LDR R1 , 0xFF
STR R1 , [R0]
LDR R0 , =0x3FF5008
LDR R1 , 0x01
STR R1 , [R0]
BL PRINT_TEXT
┉┉
PRINT_TEXT
┉┉
MOV PC,LR
┉┉
END
简单汇编实例
简单汇编实例
1、求两个数的最大值,并将最大值放与R0寄存器
AREA MAX,CODE,READONLY
ENTRY
START
MOV R1,#0x16
M0V R2,#0x17
CMP R1,R2
MOVMI R0,R2
MOVPL R0,R1
END
简单汇编实例
2、循环实现数的递减,即每次减1。最终结果为0时退出循环。
AREA MAX,CODE,READONLY
ENTRY
START
MOV R0,#10
LOOP
SUBS R0,R0,#1
BNE LOOP
END
简单汇编实例2
简单汇编实例
3 、修改下列C程序段代码为ARM汇编程序段代码。
void gcd( int a, int b)
{
while(a!=b)
if (a>b)
a=a-b;
else
b=b-a;
}
简单汇编实例
4 、修改下列C程序段代码为ARM汇编程序段代码。
AREA MAX,CODE,READONLY
ENTRY
START
CMP R0,R1
BEQ END
BLT Less
SUB R0,R0,R1
BAL END
Less
SUB R1,R1,R0
END
汇编语

嵌入式课件(宋晖)课件 26 ARM程序设计基础 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数71
  • 收藏数0 收藏
  • 顶次数0
  • 上传人清晨
  • 文件大小7.79 MB
  • 时间2022-04-14
最近更新