步骤及效果如下:
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)。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删