ARM实验二报告

2019-09-02 15:10

汇编语言与接口技术实验报告

ARM汇编语言程序设计

院 系 信 科 院 专业班级 计科1201 学生姓名 学 号 指导教师 提交日期 2015 年 5 月 15 日

一、实验目的

? 初步学会使用IAR EWARM 开发环境及ARM 软件模拟器。 ? 通过实验掌握简单ARM 汇编指令的使用方法。

? 通过实验掌握使用 ldm/stm、b、bl 等指令完成较为复杂的存储区访问和程序分

支,学习使用条件码,加强对CPSR 的认识。

? 通过实验掌握 ARM 处理器16 位Thumb 汇编指令的使用方法。

二、实验内容

? 利用实验参考程序学习使用ldr/str、mov 等指令访问寄存器或存储单元。使用

add/sub/lsl/lsr/and/orr 等指令,完成基本数学/逻辑运算。

? 编写程序循环对R4~R11 进行累加8 次赋值,R4~R11 起始值为1~8,每次加

操作后把R4~R11 的内容放入SP 栈中,SP 初始设置为0x800。最后把R4~R11 用LDMFD 指令清空赋值为0。

? 新建工程,并自行编写汇编程序,分别使用ldr、str、ldmia、stmia 操作,实现

对某段连续存储单元写入数据,并观察操作结果。学习分支程序设计,要求判断参数,根据不同参数,调用不同的子程序。 ? 编写程序实现50!(即50的阶乘)。

? 编写程序从ARM状态切换到Thumb,在ARM 状态下把R2 赋值为0x12345678,在Thumb

状态下把R2 赋值为0x87654321。同时观察并记录CPSR、SPSR 的值,分析各个标志位。

三、实验设备

1. UP-TECH S2410实验平台,ARM标准/增强型仿真器套件

2. PC 操作系统WIN98 或WIN2000 或WINXP,IAR EWARM 集成开发环境,仿真调试驱动程序(H-JTAG)。

四、实验参考程序

#*********************************************************************************************

# NAME: ARMcode1.s * # Author: Embest *

# Desc: ARMcode examples * # copy words from src to dst *

# History: shw.He 2005.02.22 *

#*********************************************************************************************

NAME main

PUBLIC __iar_program_start SECTION `.text`:CODE:NOROOT(2) ARM ; ARM mode __iar_program_start main:

ldr r0, =src /* r0 = pointer to source block */ ldr r1, =dst /* r1 = pointer to destination block */ mov r2, #num /* r2 = number of words to copy */ mov sp, #0x400 /* set up stack pointer (r13) */ blockcopy

movs r3,r2, LSR #3 /* number of eight word multiples */ beq copywords /* less than eight words to move ? */ stmfd sp!, {r4-r11} /* save some working registers */ octcopy

ldmia r0!, {r4-r11} /* load 8 words from the source */ stmia r1!, {r4-r11} /* and put them at the destination */ subs r3, r3, #1 /* decrement the counter */ bne octcopy /* ... copy more */

ldmfd sp!, {r4-r11} /* don't need these now - restore originals */ copywords

ands r2, r2, #7 /* number of odd words to copy */ beq stop /* No words left to copy ? */ wordcopy

ldr r3, [r0], #4 /* a word from the source */

str r3, [r1], #4 /* store a word to the destination */ subs r2, r2, #1 /* decrement the counter */

bne wordcopy /* ... copy more */ stop

b stop

ALIGN src

DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4

dst

DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

END

五、程序运行测试

实验代码(替换参考程序的main部分)及测试结果如下:

实验1

LDR R0, =SRC

LDR R1,=DST MOV R2,#55 MOV SP,#0x400 BLOCKCOPY

MOVS R3,R2, LSR #3 BEQ COPYWORDS STMFD SP!, {R4-R11} OCTCOPY

LDMIA R0!, {R4-R11} STMIA R1!, {R4-R11} SUBS R3, R3, #1 BNE OCTCOPY

LDMFD SP!, {R4-R11} COPYWORDS

ANDS R2, R2, #7 BEQ STOP WORDCOPY

LDR R3, [R0], #4 STR R3, [R1],#4 SUBS R2, R2, #1 BNE WORDCOPY STOP

B STOP ALIGN SRC

DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4 DST

DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 END

实验2 START

ldr r0,=SRC mov r2,#8

mov sp,#0x800 mov r4,#1 mov r5,#2 mov r6,#3 mov r7,#4 mov r8,#5 mov r9,#6 mov r10,#7 mov r11,#8 LOOP

add r4,r4,#1 add r5,r5,#1 add r6,r6,#1 add r7,r7,#1 add r8,r8,#1 add r9,r9,#1 add r10,r10,#1 add r11,r11,#1 stmfd sp!,{r4-r11} subs r2,r2,#1 bne LOOP

LDMIA r0!,{r4-r11} STOP


ARM实验二报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2 第三章 核酸化学作业及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: