【问题标题】:How to convert a c program to 8051 microcontroller assembly code如何将c程序转换为8051单片机汇编代码
【发布时间】:2017-11-18 17:03:18
【问题描述】:

我浏览了几个网站,但找不到合适的答案。将我的c程序转换为汇编代码似乎真的很难......

【问题讨论】:

  • 至少跟 CSS 没什么关系……
  • 尝试找到并使用一些cross-compiler,或者手动进行转换(在纸上或屏幕上)。但是您的问题在这里完全是题外话。对于您关于 SO 的下一个问题,请提供minimal reproducible example
  • 真正的目的是什么?我的意思是,您可以使用 -S 生成程序集,但它与人类编写的程序集不同。
  • @DaveNewton 是的,我有一个 c 程序,但我无法将程序转换为微控制器汇编代码...
  • 为什么不呢?你得到了什么错误?

标签: c 8051


【解决方案1】:

如果你使用 keil uvision ,那么 1.转到调试>>单击“启动/停止调试会话”如果IDE 2它将启动模拟器。 2.查看>>点击反汇编窗口,就可以看到组装了。

如果没有,请转到下面的链接并下载 DIS8051 Cross-Disassembler V2.1(您需要 hex 文件将程序转换为 8051 的程序集) http://bit.kuas.edu.tw/~8051/

【讨论】:

    【解决方案2】:

    使用 GCC,您可以生成带有 -S 标志的汇编代码。

    例子:

    gcc -S hw.c

    我已经在一些小程序中尝试过,但不知道在大型程序中是否可以使用。

    【讨论】:

    • 但是 OP 需要 8051 汇编器,而不是 x86 汇编器。所以他需要一个cross-compiler(大多数gcc都没有);最好通过-fverbose-asm(也可能是-O)和-S
    • 当我回答这些信息时没有提到。该问题已被编辑。
    • gcc 绝对可以交叉编译,它有很多后端。
    • 但是交叉编译器一般不叫gcc,而是叫avr-gcc。您将在 GCC 的configure 时间传递一些额外的选项。我听说的所有gcc 程序都是直接的 GCC 编译器(不是交叉编译器)
    • GCC 不做 8051。如果你想免费,我想你唯一的选择是 SDCC,如果你想付费,可以使用 Keil、IAR 等。
    猜你喜欢
    • 1970-01-01
    • 2021-04-23
    • 2014-12-10
    • 2020-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2014-09-01
    相关资源
    最近更新 更多