【问题标题】:Intel 8086 Assembly procedure calling from C从 C 调用英特尔 8086 汇编程序
【发布时间】:2013-01-11 12:37:37
【问题描述】:

我需要为汇编语言开发一个过程并从 C 语言调用该过程(传递一个字符串并返回一个整数值)。我的组装程序“独立”运行良好。我需要帮助将它们连接在一起。

程序应该在 Intel 8086 上运行。我需要使用 MASM 或 emu8086 作为汇编器/模拟器。请推荐一个 C 编译器,以及一种制作简单 C 程序的方法,该程序能够调用汇编程序并获取返回值。

如何将字符串传递给这个外部函数?
如何连接 ASM 文件和 C 文件? (编译器如何知道此过程的定义/代码在哪里?)
如何在汇编语言中获取从 C 发送的字符串,以及如何将整数返回给 C?

【问题讨论】:

  • 由于您没有投票甚至评论,我删除了我的答案。

标签: c assembly intel x86-16


【解决方案1】:

推荐一个 C 编译器

信息不足,但是如果您的平台足够重要,那么 GCC 可能已经支持它。

也是一种制作简单C程序的方法,可以调用汇编程序并获取返回值。

编写简单的 C 程序的方法是使用文本编辑器。 (哦,等等,你对代码感兴趣吗?来吧:

#include <stdio.h>

extern int foo();

int main()
{
    int i = foo();
    printf("%d\n", i);
    return 0;
}

【讨论】:

  • 感谢您的及时回复。是的,这正是我需要的。只是一些澄清/建议。很抱歉一开始没有提供足够的信息。如何将字符串传递给这个外部函数?如何连接 ASM 文件和 C 文件? (编译器如何知道此过程的定义/代码在哪里?)我如何获取从 C 语言中以汇编语言发送的字符串,以及如何将整数返回给 C?非常感谢!
  • @user1969973 你在问之前读过 C 教程吗? foo("HelloWorld");
猜你喜欢
  • 1970-01-01
  • 2015-09-29
  • 1970-01-01
  • 2011-02-14
  • 2012-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多