2022年实验二ARM汇编语言编程实验共享 .pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2022年实验二ARM汇编语言编程实验共享 .pdf》由会员分享,可在线阅读,更多相关《2022年实验二ARM汇编语言编程实验共享 .pdf(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验二: ARM 汇编语言编程实验一、实验目的1、掌握 ADT IDE ARM 开发环境中基本的工程设置以及程序编译方法。2、掌握 ADT IDE ARM 开发环境中基本的程序调试方法。3、掌握基本的 ARM 汇编语言编程方法。二、实验内容用汇编语言编写一个程序实现如下目的:从源地址拷贝num 个字(num*4 个字节)的数据到目的地址 dst 中。三、预备知识1、ARM 汇编语言的基础知识。2、程序调试的基础知识和方法。四、实验设备1、硬件: JXARM9-2440 教学实验箱、 PC机。2、软件: PC机操作系统 Windows 98(2000 、XP)+ADT IDE开发环境。五、基础知
2、识ADT IDE集成了 GNU 汇编器 arm-elf-as、编译器 arm-elf-gcc和链接器 arm-elf-ld。在ADT IDE中编写的程序必须符合GNU 的语法规则。下面介绍一些基本的GNU 汇编知识以及本实验用到的 ARM 汇编指令。1、GUN 汇编语言语法及规则1)_start _start为程序默认入口点,代码段默认起始地址为0 x800,如果需要修改可以在链接脚本文件中指定。2)标号语法:symbol: symbol 为定义的符号。说明:上述代码定义一个标号,它表示程序中当前的指令或数据地址。如果在程序中出现两个相同的标号,汇编器将会产生一个警告,且只有第一个标号有效。课
3、程名称ARM 体系结构实验成绩指导教师冯灵霞实 验 报 告院系信息工程学院班级计算机科学与技术(嵌入式)学号姓名日期名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 8 页 - - - - - - - - - 2、GNU 汇编语言伪操作1).equ 伪操作语法:.equ symbol,expr expr 为基于寄存器的地址值、 程序中的标号、32位的地址常量或位的常量。 symbol 为.equ伪操作为 expr 定义的字符名称。说明:该操作符为数字常量、基于寄存器的值和程
4、序中的标号定义一个字符名称,相当于 C语言中的宏定义。示例: .equ USERMODE,0 x10 2).global伪操作符语法:.global symbol symbol 为声明的符号的名称。它是区分大小写的。说明:该操作符声明一个可以被其它文件引用的全局符号,相当于 C语言中的全局变量。示例: .global Main 3).text伪操作符语法:.text subsection subsection为代码段子段,可选参数。说明:该操作符将操作符开始的代码编译到代码段或代码段子段中。示例: .text 4).end 伪操作符语法:.end 说明:该操作符标记当前汇编文件的结束行,即标号
5、后的代码不作处理。示例: .end 5).ltorg伪操作符语法:.ltorg 说明:该操作符用于在当前段的当前地址产生一个文字池。示例: .ltorg 3、存储器访问指令1)LDR和 STR指令名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 8 页 - - - - - - - - - 说明: LDR/STR指令用于加载寄存器和存储寄存器。它们的使用比较复杂,现仅列举本实验用到的一些使用方法。示例:LDR r3,r0,#4 /* 从 r0 表示的地址中读取数据到r3 中,
6、然后将 r0 加 4*/ STR r3,r1,#4 /* 将 r3 中的数据保存到 r1 表示的地址中,然后将r1 加 4*/ 2)LDMIA和 STMIA指令说明: LDMIA/STMIA 指令用于加载多个寄存器和存储多个寄存器。它们的使用比较复杂,现仅列举本实验用到的一些使用方法。示例:LDMIA r0!,r4-r11 /* 从 r0 表示的地址中取出8 个数据分别放到到r4-r11 中*/ STMIA r1!,r4-r11 /* 将 r4-r11 中的数据保存到 r1 表示的起始地址中 */ 4、程序分支指令1)B指令说明: B指令为 ARM 分支指令,将引起处理器转移到指定标号处执行。
7、示例:B Label /* 处理器转移到 Label 标号处执行 */ BEQ stop /*Z 标志置位则转移到stop 标号处执行,否则继续执行下一条指令*/ BNE octcopy/*Z标志清零则转移到octcopy 标号处执行,否则继续执行下一条指令*/ 5、其它指令1)SUBS 指令说明:该指令由SUB指令加上 S后缀组成, S后缀标志根据执行结果更新条件标志码。示例:SUBS r3,r3,#1 2)MOVS 指令说明:该指令由MOV 指令加上 S后缀组成, S后缀标志根据执行结果更新条件标志码。示例:MOVS r3,r2,LSR#3 /* 将 r2 右移 3 位即除以 8,然后赋值
8、给 r3*/ 6、链接脚本文件一个程序通过 .text、 .data 以及.bass 等伪指令设定其所属的段, 其中 text 段为代码段,data 段为已经初始化的数据段, bass 段为尚未初始化的数据段。因此,程序编写好以后,必须告诉编译器怎样组织其中的各个段,各段的起始地址是多少。这些设置在软件仿真器中可能没有多少作用,但是如果该程序必须运行在具体硬件平台上就必须正确的设置到存储器(SDRAM、SRAM 或 FLASH )的地址空间。这个工作就是通过链接脚本文件完成。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年实验二ARM汇编语言编程实验共享 2022 实验 ARM 汇编语言 编程 共享
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内