【问题标题】:Playing with Assembly without OS details在没有操作系统细节的情况下玩组装
【发布时间】:2013-02-15 17:53:37
【问题描述】:

我有时喜欢使用 C(++) 中的内联汇编来了解更多信息并轻松与之交互。我查看了 NASM 等汇编程序的教程,但似乎你必须注意很多操作系统特定的细节才能做任何事情。

有没有办法使用汇编,我可以编写简单的函数并从 C 或类似的东西中调用它们?也许是一个以目标文件作为输出的汇编器?

基本上我有兴趣学习如何将问题转化为低级指令,我不想处理样板代码以将消息打印到屏幕等等。

请注意,我不打算用汇编语言编写实际程序。我知道编译器在这方面做得比我以往任何时候都好。我只是为了好玩,基本上是为了解决难题。

【问题讨论】:

  • 将代码写入 .s 文件并从 main (gcc) 调用。
  • 您也可以使用 -S 标志查看源代码的汇编器输出。在调试器中使用汇编器视图也有帮助。
  • 另外,如果您这样做主要是为了探索(例如比较 C 和 asm 实现),您可能需要考虑使用内联汇编程序:ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html。 GCC(更不用说 AT&T)语法需要一些时间来适应,但使用 C 变量与 asm 块交换数据很方便。

标签: assembly x86


【解决方案1】:

您可能有兴趣关注Paul Carter's PC Assembly Tutorial。它适用于 NASM 和几乎所有 C 编译器(gcc、Open Watcom、Borland's、Microsoft's)。

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 2017-04-17
    • 2011-10-26
    • 1970-01-01
    • 2012-03-19
    • 2011-09-12
    • 1970-01-01
    相关资源
    最近更新 更多