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

导语

    大三专业课要求开始学习单片机,但可能因为教学改革工作等问题,学习单片机还是使用的汇编语言。无可否认,汇编语言是最贴近与底层的、最能让使用者感受操作寄存器或者存储器过程的一种语言,但其在可读性、移植性、维护性与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语言转换为汇编语言的两种方法,实际的转换效果还是比较好的,不知道你是否掌握了吗?

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 178,530评论 25 709
  • 每次参与一个课程,我都会问自己,你的目的是什么?阅读有目的,效率会更高,上课有目的,会更专注。 我这次来上课,主要...
    离钱最近的运营YUKI阅读 324评论 1 0
  • 每日长短不差,记忆深刻程度却千差万别。在不可避免的琐碎中,很多默念的东西隐藏在了冬季的苍白。会想尽力让春季有所回想...
    贾方舟阅读 567评论 0 2
  • 观棋一语阅读 161评论 0 0
  • 说起文字,不同的人对它所赋予的意义有所不同。 之所以说是文字,因为自己还谈不上文学,不过是有什么写什么,心之所向,...
    卡卡锅阅读 446评论 13 14

友情链接更多精彩内容