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

(1) KEIL UVISION3软件(这里笔者以刚安装在舍友电脑的KEIL 3软件为例,但凡Keil系列的IDE都有下面提到的功能)
(2) 一个已经写好的LED闪烁Keil工程(C语言编写)

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

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

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

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



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

思考
转换我们已经转换完了,但是每个C语言语句(这里指一个分号语句)对应的汇编语言操作语句我们还是一头雾水啊,怎么能继续提高转换的可读性和效率呢?继续往下看
更方便的转换方法
Step 1:还是用Keil 3软件打开我们的LED闪烁工程,编译检查是否有错误警告
Step 2:点击Keil软件中的“Debug 仿真”按钮(下图中第二行 有小写“d”的按钮),进入软件单步调试模式,然后打开“汇编转换”窗口(红色圆圈处)

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

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

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