实验三 ARM微处理器指令系统
一、实验目的
掌握ARM微处理器指令集的书写格式;掌握ARM指令的寻址方式;掌握基本的ARM指令的用法;
二、实验内容
使用RealView MDK集成开发环境,编写汇编语言程序,使用基本的ARM指令以及不同寻址方式,通过查看结果掌握指令的功能。
三、实验要求
能够熟悉使用RealView MDK集成开发环境建立工程和汇编源文件;能够编写完整的汇编语言程序段,并能够设置编译参数完成程序编译;能够正确书写基本的指令,能够查看寄存器和存储器的内容;至少书写10条基本的ARM指令,并记录下运行的结果。
四、示例程序
AREA ARMex,CODE,READONLY
ENTRY
START
MOV R1,#0x12
MOV R1,R1,LSL #2
MOV R0,#0x40000000
STR R1,[R0]
LDR R2,[R0]
STOP
B STOP
END
五、实验过程及结果
一、示例程序 首先按照老师上课所讲对环境进行设置,然后按照老师所给代码运行,一开始出现了一些问题,后调整了缩进后得以成功运行,编译成功后一步步调试查看运行结果,并进行分析,理解了相应Arm指令,运行结果如下: 指令分析: MOV R1,#0x12 R1=#0x12 MOV R1,R1,LSL #2 R1=R1<<2 MOV R0,#0x40000000 R0=#0x40000000 STR R1,[R0] 将R1寄存器的值,传送到地址值为R0的存储器内存中 LDR R2,[R0] 将存储器地址为R0的字数据读入寄存器R2 二、11条arm指令程序 MOV R1,#0x12 R1=#0x12 MOV R1,R1,LSL #2 R1=R1<<2 MOV R0,#0x40000000 R0=#0x40000000 STR R1,[R0] 将R1寄存器的值,传送到地址值为R0的存储器内存中 LDR R2,[R0] 将存储器地址为R0的字数据读入寄存器R2 MOV R2 #0x24 R2=#0x24 ADD R2,R1,R0 R2=R1+R0 SUB R1,R2,R0 R1=R2-R0 MUL R0,R1,R2 R0=R1*R2 MVN R1,#0 R1=0xFFFFFF TST R0,R1 R0,R1按位与运算,并更新标志位的值 运行结果如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/2020120215233619.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0hhcHB5X2NoYW5nZQ==,size_16,color_FFFFFF,t_70)
|