首页 ARM实验报告

ARM实验报告

举报
开通vip

ARM实验报告 《嵌 入 式 系 统》 实验报告 课 题: 嵌入式系统 姓 名: 赵爱峰 班 级: 11电子(1)班 学 号: 20110310158 指导教师: 申屠浩 开课时间: 2013-2014学年第2学期     实验一  ARM汇编指令 一 实验目的 1.1 初步学会使用Embest IDE for ARM 开发环境及ARM软件模拟器; 1.2 通过实验掌握简单ARM汇编指令的使用方法。 二 实验设备 2.1 硬件:PC机; 2.2 软件:Embest IDE 2004...

ARM实验报告
《嵌 入 式 系 统》 实验 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 课 题: 嵌入式系统 姓 名: 赵爱峰 班 级: 11电子(1)班 学 号: 20110310158 指导教师: 申屠浩 开课时间: 2013-2014学年第2学期     实验一  ARM汇编指令 一 实验目的 1.1 初步学会使用Embest IDE for ARM 开发环境及ARM软件模拟器; 1.2 通过实验掌握简单ARM汇编指令的使用方法。 二 实验设备 2.1 硬件:PC机; 2.2 软件:Embest IDE 2004集成开发环境。Windows98/2000/NT/XP; 2.3 ARM实验箱。 三 实验内容 3.1 熟悉开发环境的使用,并使用LDR/STR和MOV等指令访问寄存器或存储 单元 初级会计实务单元训练题天津单元检测卷六年级下册数学单元教学设计框架单元教学设计的基本步骤主题单元教学设计 ; 3.2 使用ADD/SUB/LSL/LSR/AND/ORR等指令,完成基本数学/逻辑运算。 四 实验原理 ARM处理器共有37个寄存器:31个通用寄存器,包括程序计数器(PC),这些寄存器都是32位;6个状态寄存器,这些寄存器也是32位,但只使用了其中的12位。 4.1 ARM通用寄存器 通用寄存器(R0~R15)可分为3类,即不分组寄存器R0~R7.分组寄存器R8~R14.程序计数器R15。 4.2存储器格式 ARM体系结构将存储器看作是从零地址开始的字节的线性组合。字节0~3存放第一个字,字节4~7存放第2个字,以此类推。 ARM体系结构可以用两种方法存储字数据,分别称为大端格式和小端格式。 4.3 GNU基础知识 Embest IDE集成了GNU汇编器as、编译器gcc和链接器ld。因此,编写程序要符合CNU的语法和规则。关于as.gcc和ld的具体使用,请参照Embest IDE所带的电子文档ProgRef.chm。 五 实验程序 使用LDR/STR和MOV等指令访问寄存器或存储单元,实现数据的加法运算: x  equ  45                            /* 定义变量x并赋值为45*/ y  equ  64                              /* 定义变量y,并赋值为64*/ STACK_TOP  equ  0x1000              /* 定义栈顶0X1000*/    AREA HHHH,CODE,READONLY        /* 声明代码段HHHH,只读属性*/ ENTRY                              /* 伪指令标识程序入口点*/ start                                /* 程序代码开始标志*/ MOV sp,#STACK_TOP                  MOV r0,#x                          /* 变量x的值放入R0*/ STR r0,[sp]                          /* 将R0的值传送到以SP值为地址的堆栈中*/ MOV r0,#y                          /* 变量y的值放入R0*/ LDR r1,[sp]                          /* 将堆栈中的数传送到R1*/ ADD r0,r0,r1                        /* 将寄存器R0和R1的值相加,结果保存到R0*/ STR r0,[sp]                          /* 将R0的值传送到以SP值为地址的堆栈中*/ Stop b stop                              /* 程序结束,进入死循环*/ End 2.使用指令,完成基本数学/逻辑运算: X  EQU  45                      /* 定义变量X,并赋值为45*/ Y  EQU  64                      /* 定义变量Y并赋值为64*/ Z  EQU  87                      /* 定义变量Z并赋值为87*/ STACK_TOP EQU 0X1000            /* 定义栈顶0X1000*/ AREA HHHHH,CODE,READONLY  /* 声明代码段HHHHH,只读属性*/ ENTRY                          /* 伪指令标识程序入口点*/ START                            /* 程序代码开始标志*/ MOV R0,#X                  /* 变量X的值放入R0*/ MOV R0,R0,LSL#8            /* 将R0的值左移8位*/ MOV R1,#Y                  /* 变量Y的值放入R1*/ ADD R2,R0,R1,LSR#1        /* 将R1的值右移1位再和R0相加,结果存在R2*/ MOV SP,#0X1000              STR R2,[SP]                  /* 将R2的值传送到以SP值为地址的堆栈中*/ MOV R0,#Z                  /* 变量Z的值放入R0*/ AND R0,R0,#0XFF            /* R0与上0XFF,取低八位*/ MOV R1,#Y                  /* 变量Y的值放入R1*/ ADD R2,R0,R1,LSR#1        /* 将R1的值右移1位再和R0相加,结果存在R2*/ LDR R0,[SP]                /* 以SP值为地址的堆栈值传送到R0*/      MOV R1,#0X01              /* 将OX01传送到R1*/ ORR R0,R0,R1              /* 将R0和R1逻辑或,结果存在R0*/ MOV R1,R2                /* 将R2的值传送到R1*/ ADD R2,R0,R1,LSR#1        /* 将R1的值右移1位再和R0相加,结果存在R2*/ STOP B  STOP                    *程序结束,死循环*/ END 六 实验结果及分析 (一)实验1: (图一) 实验一结论: 使用LDR/STR和MOV等指令访问寄存器或存储单元,实现数据的加法运算,先定义变量,然后用到堆栈,将两个数相加后保存。 (二)实验2: (图二) 实验二结论: 用ADD/SUB/LSL/LSR/AND/ORR等指令,来完成基本的数学/逻辑运算,先定义变量,然后将R0左移保存,再将R1中的Y变量除以2,加上R0保存在R2,并将Z变量保存到R0取低八位,将变量Y放入R1,除以2再加R0存在R2,最后将R1的值除以2再加上R0存在R2中来完成基本计算。 七 心得与体会 这学期接触了ARM9,无论是理论还是上机,都有些生疏。但好在课堂上先进行了一些知识的铺垫,并且和曾经学得C语言相结合,对于代码的理解稍微好点。当然实验的成功也离不开老师的指导与演示,在此非常感谢老师。
本文档为【ARM实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_713593
暂无简介~
格式:doc
大小:712KB
软件:Word
页数:7
分类:
上传时间:2018-12-05
浏览量:32