内容发布更新时间 : 2024/12/23 6:51:51星期一 下面是文章的全部内容请认真阅读。
字符串复制后两个数据存储区Src:0x8040和Dst:0x8047中的数据情况
实验三 ARM汇编指令实验3-ARM处理器工作模式实验
实验目的
(1) 通过实验掌握学会使用msr/mrs指令实现ARM处理器工作模式的切换,观察不同模
式下的寄存器,加深对CPU结构的理解;
(2) 通过实验掌握ld中如何使用命令指定代码段起始地址。 实验内容
通过ARM汇编指令,在各种处理器模式下切换并观察各种模式下寄存器的区别;掌握ARM不同模式的进入与退出。 实验要求
(1) 按照2.3节介绍的方法,在ADS下创建一个工程asmmodelab,完成各个模式下的堆
栈初始化工作,并将R1-R12的内容存入当前模式下堆栈。通过AXD运用单步执行
方式调用程序,验证工作的模式,使用寄存器观察切换到不同的工作模式下观察SP(R13)的变化情况。
(2) 实验过程中请记录并思考以下内容: 1) 程序复位之后系统处于什么模式?
2) 记录每种模式下的厨师堆栈指针,以及执行R1-R12内容压栈后本模式堆栈相关内存单
元的数值。并分析快速中断FIQ模式与其他模式存入的R1-R12有什么不同。 3) 切换成用户模式之后还能否从用户模式切换到其他模式?
4) 用户模式下能否执行堆栈压栈操作?如果能的话,观察用户模式下压栈之前和之后其堆
栈区域的变化情况。
5) 观察本程序模式切换过程中SPSR有无变化,并解释其原因。
程序运行结果截图:
6) 程序复位之后系统处于什么模式?
答:程序复位之后系统处于管理模式。
7) 记录每种模式下的初始堆栈指针,以及执行R1-R12内容压栈后本模式堆栈相关内存单
元的数值。并分析快速中断FIQ模式与其他模式存入的R1-R12有什么不同。
答:(管理模式)
即管理模式的栈顶指针为0x8240
满递减模式,r1-r12压栈后,管理模式栈顶指针为0x8210相距0x30,压入12个字
(中断模式)
观察r13,中断模式的堆栈地址为0x8340
满递减模式,r1-r12压栈后,中断模式栈顶指针为0x8310,相距0x30,压入12个字