嵌入式系统应用ex01.docxVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式系统应用ex01

实验一:汇编指令实验 1.实验目的 了解Keil uVision集成开发环境及软件仿真功能使用。 掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序。 掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。 掌握基本的汇编程序调试。 2.实验设备 硬件:PC机一台 软件:WindowsXP系统,Keil uVision 4.0集成开发环境 3.实验内容 (1)使用LDR指令读取0址上的数据,将数据加1。若结果小于10,则使用STR指令把结果写回原地址;若结果大于等于10,则把0写回原地址。 (2)使用Keil uVision软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口监视R0和R1的值,打开存储器观察窗口监视0址上的值。 4.实验预习要求 (1)学习ARM指令系统的内容,重点掌握LDR/STR指令和指令条件执行; (2)查阅Keil uVision 软件的介绍,了解软件的功能和操作方法。 5.实验步骤 (1)启动Keil uVision,新建一个工程ex01。见图1-1、图1-2、图1-3。 图1-1 建立工程 图1-2 选择目标芯片 图1-3 不需要系统提供的Startup文件 (2)建立汇编源文件ex01.s,编写实验程序,然后添加到工程中。见图1-4、图1-5、图1-6、图1-7。 图1-4 建立新文件 图1-5 保存扩展名为.s的汇编程序文件 图1-6 把文件添加到工程 图1-7 添加文件到工程后 (3)设置工程选项,存储器映射。见图1-8、图1-9。 图1-8 设置工程选项 图1-9 设置存储器映射 (4)编译链接工程。见图1-10。 图1-10 编译工程 (5)进行软件仿真调试。见图1-11、图1-12、图1-13、图1-14。 图1-11 调试运行 图1-12 调试界面 图1-13 设置断点 图1-14 运行程序 6.实验参考程序 汇编指令实验的参考程序见程序清单1.1。 程序清单1.1 汇编指令实验参考程序 COUNT EQU 0 ;定义一个变量,地址为0 AREA RESET, CODE, READONLY ;声明代码段RESET ENTRY ;表示程序入口 CODE32 ;声明32位ARM指令 START LDR R1,=COUNT ;R1 ← COUNT MOV R0,#0 ;R0 ← 0 STR R0,[R1] ;[R1] ← R0,即设置COUNT为0 LOOP LDR R1,=COUNT LDR R0,[R1] ;R0 ← [R1] ADD R0,R0,#1 ;R0 ← R0 + 1 CMP R0,#10 ;R0与10比较,影响条件码标志 MOVHS R0,#0 ;若R0 = 10, 则此指令执行,即R0 ← 0 STR R0,[R1] ;[R1] ← R0,即保存COUNT B LOOP END 7.思 考 (1)若使用LDRB/STRB代替程序清单中的所有加载/存储指令(LDR/STR),程序会得到正确的执行吗?能 (2)LDR伪指令与LDR加载指令的功能和应用有何区别,举例说明?(提示:LDR伪指令的形式为“LDR Rn,=expr”。) (3)LDR/STR指令的前索引偏移指令如何编写?指令是怎样操作的? 8.选作内容 (1)使用ARM汇编指令实现if条件执行。 (2)使用ARM汇编指令实现for循环结构。 (3)使用ARM汇编指令实现while循环结构。 (4)使用ARM汇编指令实现do…while循环结构。 COUNT EQU 0 ;定义一个变量,地址为0 AREA RESET, CODE, READONLY ;声明代码段RESET ENTRY ;表示程序入口 CODE32 ;声明32位ARM指令 START LDR R1,=COUNT ;R1 ← COUNT MOV R0,#0 ;R0 ← 0 STR R0,[R1] ;[R1] ← R0,即设置COUNT为0 MOV R0,#0 ;R0 ← 0 MOV R2,#100 ;R2 ← 100 DO ADD R0,R0,R2 ;R0 ← R0 + R1 SUBS R2,R2,#1 ;R2 ← R2

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档