优·嵌入式实验一.docVIP

  • 2
  • 0
  • 约3.08千字
  • 约 6页
  • 2017-01-17 发布于湖北
  • 举报
嵌入式软件开发基础实验 学生:陈柏仲 班级:08电子2班 学号:200824121222 3·1 ARM 汇编指令实验1 一、实验目的 初步学会使用Embest IDE for ARM 开发环境及ARM软件模拟器。 通过实验掌握简单ARM汇编指令的使用方法。 二、实验设备 硬件:PC机。 软件:Emabest IDE Pro 2004 集成开发环境,Windows 98/2000/NT/XP。 三、实验内容 熟悉开发环境的使用,并使用LDR、STR和MOV等指令访问寄存器或存储单元。 使用ADD、SUB、LSL、LSR、AND和ORR等指令,完成基本数学逻辑运算。 四、实验原理 ARM处理器共有37个寄存器: 31个通用寄存器,包括程序计数器(PC)。这些寄存器都是32位。 6个状态寄存器。这些寄存器也是32位,但只使用了其中的12位。 这里简要介绍通用寄存器,关于状态寄存器的介绍,请参考3·2节“实验原理”部分 ARM通用寄存器 通用寄存器R0~R15可分为3类,即不分组寄存器(R0~R7)、分组寄存器(R8~R14 )和程序计数器(R15)。 不分组寄存器 R0~R7是不分组寄存器。这意味着所有处理器模式下,它们都访问一样的32位寄存器。 它们是真正的通用寄存器,没有体系结构所隐含的特殊用途。 分组寄存器 R8~R14是分组寄存器。它们每一个访问的物理寄存器取决于当前的处理器模式。若要 访问特定的物理寄存器而不依赖当前的处理器模式,则使用规定的名字 寄存器R8~R12各有两组物理寄存器:一组为FIQ模式,另一组为除了FIQ以外的所有模式。寄存器R0~R12没有任何指定的特殊用途。只是使用R8~R14来简单地处理中断。寄存器R13和R14各有6个分组的物理寄存器,1个用于用户模式和系统模式,其他5个分别用于5种异常模式。寄存器R13通用作堆栈指针,称作SP。每种异常模式都有自己的R13。寄存器R14用作子程序链接寄存器,也称作LR。 程序计数器 寄存器R15用作程序计数器(PC)。在本实验中,ARM核工作在用户模式,R0~R15可用。 存储器格式 ARM体系结构存储器看作是从零地址开始的字节的线性组合。字节0~3存放第1个字 ,字节4~7存放第2个字,依此类推。 ARM体系结构可以用两种方法存储字数据,分别称为“大端格式”和“小端格式”。 大端格式:在这种格式中,字数据的高位字节存储在低地址中,而字数据的地位字节存放在高位地址中,如下所示。 小端格式:在这种格式中,字数据的高位字节存放在高地址中,而字数据的低位字节存放在低地址中,如下所示。 GNU基础知识 Embest IDE 集成了GNU汇编as、编译器gcc和链接器ld。因此,编写程序要符合GNU 的语法和规则。关于as、gcc和ld的具体使用,请参照Embest IDE所带的电子文档ProgRef.chm,在此不再赘述。这里简单介绍几点基本知识: 程序默认入口点为“_Start”,代码段默认起始地址为0x8000; as常用伪操作符。 1).equ .equ伪操作为数字常量、基于寄存器的值和程序中的标号定义一个字符名称。 语法格式 .equ symbol,expr 其中,expr为基于寄存器的地址值、程序中的标号、32位的地址常量或者32位的常量。Symbol为.equ伪操作为expr定义的字符名称。 示例 .equ Version ,“0.1” 2).global及.globl . global声明一个符号可以被其他文件引用,相当于声明了一个全局变量。 .globl与.global相同。 语法格式 .global symbol 其中,symbol为声明的符号的名称。它是区别大小写的。 示例 .global MyAsmFune 3).text ,text伪操作将操作符开始的代码编译到代码段或代码段子段中。 语法格式 .text{subsection} 示例 .text 4).end 标记汇编文件的结束行,即标号后的代码不作代理。 语法格式 .end 5).Itorg .Itorg伪操作用于在当前段(一般是.text段)的当前地址(字对准地址)产生一个文字池。 语法格式 .Itorg 五、实验操作步骤 1·实验A 新建工程:运行Embest

文档评论(0)

1亿VIP精品文档

相关文档