您的位置:首页 > 其它

ARM体系结构——如何在MDK上仿真

2016-03-06 00:19 190 查看
  今天学习ARM体系结构,记录一下在MDK v4.14中如何仿真,查看寄存器情况。

  

  MDK版本:uVision V4.14.4.0

  处理器:Samsung S3C2410A(ARM920T)

  开发语言:汇编语言

======================================

步骤及效果如下:

Step1: 打开MDK集成开发环境,新建工程,选择目标设备为S3C2410A,不要添加Startup Code到工程,因为我们这里要自己写汇编程序。



Step2:配置工程选项,如下所示。





Step3: 新建一个汇编文件,注意后缀为s或S,保存并添加到工程,再在该文件输入如下汇编代码。



Step4: 编译,并确认没有Error。



Step5: 进入Debug模式,可以在左边栏查看寄存器及其值,以及ARM当前工作模式等信息,接着单步运行程序,可以看到相关寄存器的值发生变化,也可以打开memory窗口查看内存情况。



上图的详细说明如下:

①、当程序运行到“b .”时,可以发现R2值为0x3,R1值为0x2,R0值为0x1,因为程序就是执行了加法运算,符合我们的预期。(ps:指令“b .”相当于C语言的“while(1)”)

②、PC是程序计数器,指向即将读取的指令,可以看出这里是4字节对齐,说明当前处于ARM状态,而不是Thumb状态。

③、说明ARM启动后处于SVC管理模式。

④、“mov r0, #1”汇编为“E3A00001”,并且对比内存情况发现,数据的低位保存在内存的低地址,即小端模式(Little-Endian)。

======================================

本次实验结束,如需转载请注明出处,谢谢。(2016.03.05)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: