问题标签 [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.
gcc - 帮助构建 16 位操作系统
我正在尝试构建一个像 OS 一样的旧 16 位 DOS。
我的示例内核代码:
这就是我编译它的方式:
我在虚拟机中运行它。
当我为常量值创建 putchar 函数(在内核代码中)时......就像这样:
然后它工作正常。但是当我将参数传递给它时(即在前面的代码中),它会为任何字符打印一个空格。我该怎么办?
c++ - 使用内联 asm 编写带有 2 个比较的 for 循环
我想将以下代码中的 for 循环转换为程序集,但我不知道如何开始。将不胜感激如何做到这一点以及它为什么起作用的解释。
我正在使用 VS2010,C++,为 x86 编写。代码如下:
c++ - 如何在 C++ 中进行内联汇编(Visual Studio 2010)
我正在编写一个性能关键、数字运算的 C++ 项目,其中 200 行核心模块使用了 70% 的时间。
我想使用内联汇编优化核心,但我对此完全陌生。但是,我确实知道一些 x86 汇编语言,包括 GCC 和 NASM 使用的那种。
据我所知:
我必须将汇编指令放在_asm{}
我想要的位置。
问题:
- 我不知道从哪里开始。在我的内联汇编开始起作用的那一刻,哪个寄存器是什么?
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 调用对流,对吗?
c - _syscallN 宏在哪里?
过去的情况是,如果您需要在不使用现有库的情况下直接在 linux 中进行系统调用,您可以只包含<linux/unistd.h>
它,它会定义一个类似于此的宏:
然后你可以在你的代码中的某个地方:
这将为您定义一个write
正确执行系统调用的函数。
似乎这个系统已经被某些东西取代了(我猜是每个进程都获得的“[vsyscall]”页面)更健壮。
那么程序直接在较新的linux内核上执行系统调用的正确方法是什么(请具体说明)?我意识到我应该使用 libc 并让它为我完成工作。但是让我们假设我有充分的理由想知道如何做到这一点:-)。
g++ - 内在程序 (SSE) - g++ - 需要帮助
这是我第一次在 stackoverflow 上发布问题,所以请尝试忽略我在格式化问题/代码时可能犯的任何错误。但请向我指出同样的问题,这样我可能会更加小心。
我试图编写一些简单的内在函数例程来添加两个 128 位(包含 4 个浮点变量)数字。我在网上找到了一些代码,并试图让它在我的系统上运行。代码如下:
我使用的 g++ 参数是:
我得到的错误如下:
我花了很多时间尝试调试这些错误,搜索它们等等。我是内在学的完全菜鸟,因此可能忽略了一些重要的事情。
感谢您提供任何帮助,
谢谢,
Sriram。
c - 如何从内联汇编器调用 Win32 API 函数?
有人能告诉我这段代码有什么问题吗?我只是从 kernel32.dll 调用睡眠函数有什么问题吗?我正在使用 Visual Studio 2008。任何帮助将不胜感激。非常感谢。
assembly - 尝试从内联汇编调用 pow 函数时出现 C2244
我想从内联汇编中调用 pow 函数。问题是我收到错误 C2244:'pow':无法将函数定义与现有声明匹配。我是组装新手,所以这可能是一个微不足道的问题,但我该如何解决这个问题?我想这与编译器无法正确解决 pow 的重载有关。以下代码片段导致错误:
c++ - Clang 不支持锁定前缀。我该如何解决?
假设这段代码:
Clang 编译器不支持锁定前缀(还没有?)。我现在该怎么办?
go - 是否可以在 Go 代码中包含内联汇编?
是否可以在 Go 代码中包含内联汇编?
这篇博客文章展示了将 Go 编译到一个单独的.s
文件并对其进行编辑,但不像许多 C 编译器支持的那样,将内联asm 作为 Go 函数的一部分。