实验一 ARM汇编指令
1・1・1实验目的
初步学会使用Embest IDE for ARM开发环境及ARM软件模拟器。
通过实验掌握简单ARM汇编指令的使用方法。
1・1・2实验设备
硬件:PC机。
软件:Embest IDE强对CPSR的认识。
硬件:PC机。
软件:Embest IDE Pro 2005 集成开发环境,Windows 98/2000/NT/XP。
熟悉开发环境的使用并完成一块存储区的拷贝。
完成分支程序设计,要求判断参数,根据不同参数,调用不同的子程序。
ARM程序状态寄存器
在所有处理器模式下都可以访问当前的程序状态寄存器CPSR。CPSR包含条件码 标志,中断禁止位,当前处理器模式以及其它状态和控制信息。每种异常模式都 有一个程序状态保存寄存器SPSR。当
异常出现时,SPSR用于保存CPSR的状态。
建立一个新的工程,命名为ARMcode;
实验参考程序编辑输入源代码,编辑完毕后,;
选择Project >Add To Project >Files命令,或单击工程管理窗口中的相 应右键菜单命令,弹出文件选择对话框,在工程目录下选择刚才建立的源文件
;
进行基本配置;
生成编译并产生目标代码;
进行相应的设置,需要注意的是:Debug设置对话框的Symbol file设置应 ;
选择Debug菜单Remote Connect进行连接软件仿真器,执行Download 命令下载程序,并打开寄存器窗口;
打开memory窗口,观察地址0x8054~0x80A0的内容,与地址 0x80A4~0x80f0 的内容;
单步执行程序并观察和记录寄存器与memory的值变化,注意观察步骤8 里面的地址的内容变化,当执行stmfd, ldmfd, ldmia和stmia指令的时候, 注意观察其后面参数所指的地址段或寄存器段的内容变化;
结合实验内容和相关资料,观察程序运行,通过实验加深理解ARM指令的 使用;
.global _start /* code */
.text
.equ num, 20 _start:
ldr rO, =src
ldr r1, =ds t
/* Set number of
/* r0 = pointer to
/* r1 = pointer to
words to be copied */
source block */ destination block */
mov r2, #num /* r2 = number of words to copy */ mov sp, #0x400 /* set up stack pointer (rl3) */
movs r3,r2.
LSR #3
/*
number of eight word multiples */
copywords
/* less
t han
eight words to move ? */
stmfd sp!,
{r4-r11}
/*
save some working registers */
octcopy:
ldmia r0!,
{r4-r11}
/*
load 8 words from the source */
st mia rl!,
{r4-r11}
/*
and put them at the destination*/
subs r3, r3, #1
/* decrement the counter */
bne octcopy /*
...
copy more */
blockcopy:
don't
beq
need these now — restore originals */
ldmfd sp!, {r4-r11} /*
copywords:
ands r2, r2, #7
/* No words left to wordcopy:
ldr
str
subs
bne
stop:
b st op
/*
.lt org
[r0], #4
[rl], #4
r2, #1
r3,
r3,
r2,
wordcopy
make a
/*
copy
/*
number
? */
of odd words to copy */ beq stop
/* a word from the source */
/* s
嵌入式实验报告 来自淘豆网m.daumloan.com转载请标明出处.