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

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

作者: _AaronHuang_ | 来源:发表于2018-10-09 15:19 被阅读0次

导语

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

相关文章

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

    导语 大三专业课要求开始学习单片机,但可能因为教学改革工作等问题,学习单片机还是使用的汇编语言。无可否认,汇编...

  • 汇编语言简介

    机器语言(二进制语言编写) -->汇编语言(形象化二进制)-->高级语言 汇编语言的特点:1>与硬件有关(不同的C...

  • KEIL4&C51安装及破解教程

    KEIL介绍:Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇...

  • 动态链接库和静态链接库

    C++静态库与动态库 预编译处理预编译命令2.编译将.c/.c++文件转化为汇编语言3.汇编将汇编语言转化为机器可...

  • Android NDK — Java 与 C/C++ 的互相调用

    本文使用的 native 代码以 c语言为例,c++代码类似。这里主要介绍 C 调 Java 的两种方法,Java...

  • C语言第一节

    1、机器码—机器语言 2、汇编语言,汇编语言和机器码是一一对应的 3、高级语言 1、C:结构化编程语言 2、C++...

  • Java的编译和反编译

    Java的编译和反编译 什么是编译 编译就是把C、C++、Java等高级语言转换成汇编语言、机器语言等低级语言的过...

  • 御件坊||Keil uvision5 C51安装教程

    安装之前须知 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇...

  • 汇编环境搭建 -- MASM32

    背景 当自己想使用C语言开发一个编译器的时候,需要将文本内容转换为汇编语言,此时需要我们对汇编语言具有一定了解及简...

  • Linux入门第6天-Linux发展史及安装入门

    机器语言>汇编语言>高级语言(C语言、C++) 汇编语言:1.难移植 交叉编译:cross compile ker...

网友评论

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

      本文链接:https://www.haomeiwen.com/subject/izgeaftx.html