1、广东工业实训中心——《ARM体系结构》试验讲义
试验二 ARM编程环境的观察及寻址方式实验
注意:本实验在模拟环境下进行,请不要打开试验箱电源!!
一、 试验目的:
1、 通过ADS观察ARM编程环境;
2、 熟悉ARM寻址方式;
二、 试验步骤:
1、 参照实验一建立工程exp2、设置工程、建立源文件exp2.s并将其添加到工程,在exp2.s中输入如下代码(可复制):
;文件名:exp2.s
;功能:
;作者:
;日期:
;修改:
area init,code,readonly
entry
ldr r0,=data1;将标号data1的值送给r0
2、 ldr r1,=data2;
ldr r2,=data3
ldr r0,[r0]
ldr r1,[r1]
add r0,r0,r1
str r0,[r2]
b .;相当于while(1)
data1
dcd 12;定义一个字,初值为12
data2
dcd 13;定义一个字,初值为13
data3
dcd 0;定义一个字,初值为13
end
2、 编译正确后调试(可参照实验一),注意Ro_Base设置为0x30000000,点击下图菜单中的Registers和Memory菜单项,这样就可以调出寄存器观察窗口和内存单元观察窗口。
会弹出如下界面:
点击current,就会看到当前模式下的寄存器
按F10进行单步调试,同时观察寄存器中的变化;
反汇编:
出现如下界面,
我们发现data1的代表的地址是0x30000020,data2代表的地址是0x30000024,data3代表的地址是0x30000028。好,我们现在通过memory窗口来查看这些寄存器单元的内容: 这个里面输入0x30000020,观察中的值,是不是我们程序所运行的结果呢?
选做实验:
验证目前你认为比较容易混淆的指令,比如:
Ldmia r0,{r1-r3}和ldmia r0!,{r1-r3}的区别
5