嵌入式系统实验报告模板.docVIP

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

《嵌 入 式 系 统》 实验报告 姓名: 学号: 班级: 湖南工业大学 电气与信息工程学院 2013年4月 实验一 ARM汇编指令实验1 实验目的 初步学会使用Embest IDE for ARM 开发环境及ARM软件模拟器; 通过实验掌握简单ARM汇编指令的使用方法。 实验设备 硬件:PC机; 软件:Embest IDE 200集成开发环境。Windows98/2000/NT/XP。 实验内容 熟悉开发环境的使用,并使用DR/STR和MOV等指令访问寄存器或存储单元。 使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学逻辑运算。 实验原理 ARM处理器共有37个寄存器:31个通用寄存器,包括程序计数器(PC)这些寄存器都是32位6个状态寄存器这些寄存器也是32位,但只使用了其中的12位。 ARM通用寄存器 通用寄存器(R0~R15)可分为3类,即不分组寄存器R0~R7.分组寄存器R8~R14.程序计数器R15。 存储器格式 ARM体系结构将存储器看作是从零地址开始的字节的线性组合。字节0~3存放第一个字,字节4~7存放第2个字,以此类推。 ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。 GNU基础知识 Embest IDE集成了NU汇编器a编译器gcc和链接器ld。因此,编写程序要符合CNU的语法和规则。关于as.gcc和ld的具体使用,请参照Embest IDE所带的电子文档ProgRef.chm实验程序.global _start .text _start: /*程序代码开始标志*/ MOV sp, #stack_top MOV r0, #x /* x的值放入R0 */ STR r0, [sp] /* R0的值保存到堆栈 */ MOV r0, #y /* y的值放入R0 */ LDR r1, [sp] /* 取堆栈中的数到R1 */ ADD r0, r0, r1 STR r0, [sp] stop: B stop /*程序结束,进入死循环*/ .end 2. 实验B参考程序 .equ x, 45 /* 定义变量x,并赋值为45*/ .equ y, 64 /* 定义变量y,并赋值为64*/ .equ z, 87 /* 定义变量z,并赋值为87*/ .equ stack_top, 0x1000 /* 定义栈顶0x1000*/ .global _start .text _start: /*程序代码开始标志*/ MOV r0, #x /* x的值放入R0 */ MOV r0, r0, lsl #8 /* R0的值乘以2的8次方 */ MOV r1, #y /* y的值放入R1 */ ADD r2, r0, r1, lsr #1 /* R1的值除以2加上r0的值放入R2 */ MOV sp, #0x1000 STR r2, [sp] MOV r0, #z /* z的值放入R0 */ AND r0, r0, #0xFF /* 取R0的低八位 */ MOV r1, #y /* y的值放入R1 */ ADD r2, r0, r1, lsr #1 /* R1的值除以2加上r0的值放入R2 */ LDR r0, [sp] /* y的值放入R1 */ MOV r1, #0x01 ORR r0, r0, r1 MOV r1, R2 /* y的值放入R1 */ ADD r2, r0, r1, lsr #1 /* R1的值除以2加上r0的值放入R2 */ stop: B stop /*程序结束,进入死循环*/ .end 六.实验结果及分析

文档评论(0)

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

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

1亿VIP精品文档

相关文档