有关C语言与汇编语言转换的方法(以Keil 3为例)

2018-10-09  本文已影响0人  _AaronHuang_

导语

    大三专业课要求开始学习单片机,但可能因为教学改革工作等问题,学习单片机还是使用的汇编语言。无可否认,汇编语言是最贴近与底层的、最能让使用者感受操作寄存器或者存储器过程的一种语言,但其在可读性、移植性、维护性与C、python、JAVA等相对高级的语言几乎没有可比性。所以,我们如何在已经有C语言等较高级语言的基础上快速掌握汇编语言呢?请往下看~


我们需要准备什么

需要准备的两个文件夹(特地截了舍友的文艺桌面^.^)

    (1) KEIL UVISION3软件(这里笔者以刚安装在舍友电脑的KEIL 3软件为例,但凡Keil系列的IDE都有下面提到的功能)

    (2) 一个已经写好的LED闪烁Keil工程(C语言编写)

LED闪烁工程文件

让我们开始吧!

Step 1:打开已经写好的keil 3 工程文件,编译后检查是否有错误、警告(如果有错误是没有办法完成汇编语言的转换的)

编译后0 error,0 warning

Step 2:点击魔术棒,开始相关设置

点击“魔术棒”按钮

进入List(清单)选项卡中,勾选“汇编代码”选项,并点击确定退出选项卡

勾选“汇编代码”

Step 3:在此重新编译工程,打开工程文件夹,我们发现比之前多了一个.LST文件,这个文件就是我们C语言转换后的汇编语言文件。我们可以用TXT编辑器、WPS等文本编辑软件查看、编辑它。

新产生的LST文件 用WPS打开的LST文件(1) 用WPS打开的LST文件(2)

在LST文档的最后我们可以看到我们写的C语言源程序,以及转换后的汇编程序

用WPS打开的LST文件(3)

思考

转换我们已经转换完了,但是每个C语言语句(这里指一个分号语句)对应的汇编语言操作语句我们还是一头雾水啊,怎么能继续提高转换的可读性和效率呢?继续往下看


更方便的转换方法

Step 1:还是用Keil 3软件打开我们的LED闪烁工程,编译检查是否有错误警告

Step 2:点击Keil软件中的“Debug 仿真”按钮(下图中第二行 有小写“d”的按钮),进入软件单步调试模式,然后打开“汇编转换”窗口(红色圆圈处)

依次点击两个按钮

Step 3:调整程序显示交换窗口大小于位置,即可看到转换后的汇编语言,与刚才的转换效果相比,这次我们能看到每个分号语句对应的汇编语言操作,结合Keil 3软件的单步调试功能,学习也更加方便。

转换后 和C语言语句对应的汇编语言

以下是单步调试模式时的效果,绿色表示我们已经执行的语句,黄色箭头表示此时我们正在运行的语句

单步调试效果

结语

以上就是借助Keil 3软件将C语言转换为汇编语言的两种方法,实际的转换效果还是比较好的,不知道你是否掌握了吗?

上一篇下一篇

猜你喜欢

热点阅读