【问题标题】:C to NASM conversionC 到 NASM 的转换
【发布时间】:2015-10-26 21:53:56
【问题描述】:

我正在尝试找到一种将简单的 C 代码转换为 NASM 程序集的方法。我尝试使用 objconv 并下载并解压缩并构建它,因为我使用的是 MAC;但是,它似乎不起作用。我不断收到“-bash:objconv:找不到命令”。有谁知道另一种方法或可以帮助我解决 -bash 错误。

【问题讨论】:

  • 一些 C 编译器可以选择输出汇编代码。
  • 在您了解如何将元素永久添加到 PATH 之前,请使用 /full/path/to/bindir/objconv file。您可能会收到类似“can't find libc.so"(或lsomething.a 等)的消息。然后您必须设置 LD_LIBRARY_PATH 以包含这些库文件的路径。发布有关如何修复 LD_LIBRARY_PATH 的新问题。祝您好运。

标签: c bash assembly nasm


【解决方案1】:

Bash 是一个程序,它接收您在终端中键入的单词并启动其他程序。如果它报错,那是因为它找不到你要运行的程序(至少在这种情况下)。

您需要找到 objconv 的预打包安装,或者您需要自己“集成”您的 objconv 副本。

如果您可以识别要运行的可执行文件(可能称为 objconv),则需要将其添加到您的路径中。最简单的方法(如果它只适合您)是验证您的 ~/.bashrc 或 ~/.bashprofile 有一行看起来像

PATH=$PATH:${HOME}/bin

如果看起来不完全相同,请不要担心。只需确保有 ${HOME}/bin 或 ~/bin(~ 是 ${HOME} 的缩写)。

如果你有,然后输入命令

cd ~/bin
ln -fs ../path/to/objconv

您将在您的主二进制目录中创建一个软链接(一种文件类型),并且该程序应该可用于命令行。

如果您创建了文件,并且上面没有任何错误,但命令行无法使用,您可能需要在 objconv 的“真实”(非链接)副本上设置可执行位。

如果这不起作用,那么现在您应该已经准备好提出一个更好、更具体的问题了。

【讨论】:

    【解决方案2】:

    如果您安装了 gcc,请尝试使用gcc -masm=intel -S source.c 以非常类似于 MASM 的语法生成汇编文件。

    【讨论】:

      猜你喜欢
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-09
      • 1970-01-01
      相关资源
      最近更新 更多