问题标签 [inline-assembly]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2332 浏览

gcc - 帮助构建 16 位操作系统

我正在尝试构建一个像 OS 一样的旧 16 位 DOS。

我的示例内核代码:

这就是我编译它的方式:

我在虚拟机中运行它。

当我为常量值创建 putchar 函数(在内核代码中)时......就像这样:

然后它工作正常。但是当我将参数传递给它时(即在前面的代码中),它会为任何字符打印一个空格。我该怎么办?

0 投票
3 回答
520 浏览

c++ - 使用内联 asm 编写带有 2 个比较的 for 循环

我想将以下代码中的 for 循环转换为程序集,但我不知道如何开始。将不胜感激如何做到这一点以及它为什么起作用的解释。

我正在使用 VS2010,C++,为 x86 编写。代码如下:

0 投票
6 回答
24930 浏览

c++ - 如何在 C++ 中进行内联汇编(Visual Studio 2010)

我正在编写一个性能关键、数字运算的 C++ 项目,其中 200 行核心模块使用了 70% 的时间。

我想使用内联汇编优化核心,但我对此完全陌生。但是,我确实知道一些 x86 汇编语言,包括 GCC 和 NASM 使用的那种。

据我所知:

我必须将汇编指令放在_asm{}我想要的位置。

问题:

  • 我不知道从哪里开始。在我的内联汇编开始起作用的那一刻,哪个寄存器是什么?
0 投票
4 回答
2935 浏览

c# - 在程序集中创建一个 Hello World 库函数并从 C# 调用它

假设我们像在这个答案中那样使用 NASM:how to write hello world in assembly under windows

我有一些关于汇编与 c# 或任何其他 .net 语言相结合的想法和问题。

首先,我希望能够创建一个库,该库具有以下HelloWorld采用此参数的函数:

  • 姓名

在 C# 中,方法签名看起来像这样:void HelloWorld(string name)它会打印出类似

来自名字的你好世界

我搜索了一下,但找不到那么多好的和干净的材料让我开始。不过,我主要知道以前的一些基本组装gas

因此,任何指向正确方向的指针都非常受欢迎。

把它们加起来

  • 在 ASM (NASM) 中创建一个接受一个或多个参数的例程
  • 编译并创建上述功能的库
  • 包含任何 .net 语言的库
  • 调用包含的库函数

奖励功能

  • 如何处理返回值?
  • 是否可以内联编写 ASM 方法?

在汇编或 c 中创建库时,您确实遵循某种“预定义”方式,即 c 调用对流,对吗?

0 投票
1 回答
852 浏览

c - _syscallN 宏在哪里?

过去的情况是,如果您需要在不使用现有库的情况下直接在 linux 中进行系统调用,您可以只包含<linux/unistd.h>它,它会定义一个类似于此的宏:

然后你可以在你的代码中的某个地方:

这将为您定义一个write正确执行系统调用的函数。

似乎这个系统已经被某些东西取代了(我猜是每个进程都获得的“[vsyscall]”页面)更健壮。

那么程序直接在较新的linux内核上执行系统调用的正确方法是什么(请具体说明)?我意识到我应该使用 libc 并让它为我完成工作。但是让我们假设我有充分的理由想知道如何做到这一点:-)。

0 投票
1 回答
1629 浏览

g++ - 内在程序 (SSE) - g++ - 需要帮助

这是我第一次在 stackoverflow 上发布问题,所以请尝试忽略我在格式化问题/代码时可能犯的任何错误。但请向我指出同样的问题,这样我可能会更加小心。

我试图编写一些简单的内在函数例程来添加两个 128 位(包含 4 个浮点变量)数字。我在网上找到了一些代码,并试图让它在我的系统上运行。代码如下:

我使用的 g++ 参数是:

我得到的错误如下:

我花了很多时间尝试调试这些错误,搜索它们等等。我是内在学的完全菜鸟,因此可能忽略了一些重要的事情。

感谢您提供任何帮助,
谢谢,
Sriram。

0 投票
1 回答
2113 浏览

c - 如何从内联汇编器调用 Win32 API 函数?

有人能告诉我这段代码有什么问题吗?我只是从 kernel32.dll 调用睡眠函数有什么问题吗?我正在使用 Visual Studio 2008。任何帮助将不胜感激。非常感谢。

0 投票
2 回答
1006 浏览

assembly - 尝试从内联汇编调用 pow 函数时出现 C2244

我想从内联汇编中调用 pow 函数。问题是我收到错误 C2244:'pow':无法将函数定义与现有声明匹配。我是组装新手,所以这可能是一个微不足道的问题,但我该如何解决这个问题?我想这与编译器无法正确解决 pow 的重载有关。以下代码片段导致错误:

0 投票
2 回答
279 浏览

c++ - Clang 不支持锁定前缀。我该如何解决?

假设这段代码:

Clang 编译器不支持锁定前缀(还没有?)。我现在该怎么办?

0 投票
4 回答
21835 浏览

go - 是否可以在 Go 代码中包含内联汇编?

是否可以在 Go 代码中包含内联汇编?

这篇博客文章展示了将 Go 编译到一个单独的.s文件并对其进行编辑,但不像许多 C 编译器支持的那样,将内联asm 作为 Go 函数的一部分。