网站大量收购闲置独家精品文档,联系QQ:2885784924

ARM9编程C语言程序设计.ppt

  1. 1、本文档共150页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ARM9编程C语言程序设计课案

第3章 ARM编程技术 ARM处理器支持两种语言进行设计,一种是汇编语言(ARM/Thumb),另一种是高级语言(如C/C++语言)。汇编语言的机器代码生成效率很高,但可读性却不强,复杂的程序很难读懂;而高级语言在大多数情况下其机器代码生成效率较差,但可读性和可移植性却比汇编语言强很多,而且还可以嵌入汇编来解决高效性的代码编写问题。 本章的内容主要有: ■ 汇编语言编程技术; ■ C语言编程规范技术; ■ 汇编语言与C/C++语言的混合编程。 3.1 汇编语言 4.3汇编语言与C/C++语言的混合编程 4.4 ARM编程实战 4.5 课后练习(1) 4.5 课后练习(2) 4.5 课后练习(3) 4.5 课后练习(4) 谢谢大家 实战1 用ARM汇编语言和C语言实现软件延时子函数Delay(int n)。 实战2 假设有一串数字{2,4,10,8,14,1,20},用C语言和ARM汇编语言分别实现冒泡排序算法,将这串数字按从小到大顺序排列。 实战3 初始化处理器各个模式下的堆栈。 实战4 输入一个3位数,输出其个位、十位和百位。 实战5 用汇编语言定义加法子程序int SUM(int a, int b),通过C语言调用,实现23+54,并将结果输出到屏幕上。 实战6 用C语言定义加法子程序int SUM(int a, int b),通过汇编语言调用,实现23+54,并将结果保存在地址为0。 实战7 在C语言中访问地址为0值,如果该处的值大于0,就让其等于0;如果小于0,则在原来数值上加1。 实战8 编写C语言函数ReadRegister()和WriterRegister(),分别用于读写ARM处理器内部的寄存器,在主程序中调用这两个函数对CPSR寄存器进行读写。 4.4.1 实战1(1) 实战1 用ARM汇编语言和C语言实现软件延时子函数Delay(int n)。 提示:用汇编语言编写函数Delay(int n)时,注意参数n通过R0寄存器传递。 程序清单4.6 C语言实现软件延时子函数Delay(int n) 程序清单4.7 汇编语言实现软件延时子函数 4.4.1 实战1(2) 程序清单4.7 汇编语言实现软件延时子函数 4.4.2 实战2(1) 实战2 假设有一串数字{2,4,10,8,14,1,20},用C语言和ARM汇编语言分别实现冒泡排序算法,将这串数字按从小到大顺序排列。 提示:冒泡排序是一个非常经典的排序算法,由两个循环结构构成,其算法流程如图4.18所示。图4.18中假设这串数字保存在src指示的内存单元中,数据个数N=7,[A]表示内存单元地址A中的内容。 图4.18 冒泡排序流程图 4.4.2 实战2(2) 图4.18 冒泡排序流程图 4.4.2 实战2(3) 程序清单4.8 C语言冒泡排序算法 4.4.2 实战2(4) 程序清单4.9 汇编语言冒泡排序算法 4.4.3 实战3 实战3 初始化处理器各个模式下的堆栈。 提示:ARM处理器能够工作在7种模式下。不管在哪种模式下工作,处理器运行程序时,无可避免地要使用到堆栈,所以正确设置各个模式下的堆栈,能够保证程序正确执行。 程序清单4.10 初始化各个处理器模式下的堆栈 程序清单4.10 初始化各个处理器模式下的堆栈 4.4.4 实战4(1) 实战4 输入一个3位数,输出其个位、十位和百位。 提示:这个程序最好用C语言编写,因为C语言中提供函数库,支持除法运算;而ARM汇编语言不提供除法指令,需要用户自行开发。 程序清单4.11 打印一个数的百、十、个位数字 4.4.4 实战4(2) 程序清单4.11 打印一个数的百、十、个位数字 4.4.5 实战5(1) 实战5 用汇编语言定义加法子程序int SUM(int a, int b),通过C语言调用,实现23+54,并将结果输出到屏幕上。 提示:此题主要目的是让学习者熟悉C语言中调用汇编子程序。 程序清单4.12 int SUM(int a, int b)汇编程序 4.2.3.4 组织有序的文件结构(2) 其实在组织软件结构时头文件也是相当有用的。公共的(外部可访问的)数据结构定义和函数声明都可以放入头文件(*.h)中,然后用一个定义文件(*.c/*.cpp)实现该头文件声明的函数,其他文件如果想使用头文件中声明的函数,只要使用include头文件即可。假设定义了头文件Key.h,在该头文件中

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档