问题标签 [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 投票
6 回答
1799 浏览

c - C中这两种形式的内联汇编程序有什么区别?

背景:我的任务是为Unitech HT630编写一个数据收集程序,它运行一个专有的 DOS 操作系统,可以运行为 16 位 MS DOS 编译的可执行文件,尽管有一些限制。我正在使用 Digital Mars C/C++ 编译器,它似乎工作得很好。

对于某些事情,我可以使用标准 C 库,但在单元屏幕上绘图等其他事情需要汇编代码。设备文档中给出的汇编示例与我被教导在 C/C++ 中使用内联汇编代码的方式不同。作为参考,BYTE在下面的示例中是类型unsigned char.

我得到的示例代码示例:

我总是被教导如何使用内联汇编:

两种形式似乎都有效,到目前为止我还没有遇到任何一种方法的问题。对于 DOS 编程,一种形式是否比另一种形式更好?在第二个示例中,该函数是否int86为我处理了一些我没有在自己的汇编代码中处理的东西?

预先感谢您的任何帮助。

0 投票
2 回答
369 浏览

c++ - Visual Studio 中的嵌入式程序集文件

我会简明扼要。在 Visual Studio 中创建 64 位代码时,_asm 块已被完全剥离。我的问题是,我在哪里可以找到一些关于如何在我可以从我的项目中调用的代码中使用汇编的信息。就像一个汇编文件一样,我想它有一些“优化”的函数,我可以在我的 C++ 源代码中直接调用它。

0 投票
3 回答
5024 浏览

c - 使用 GCC 的 Nasm 内联汇编

在我的项目中,我需要使用内联汇编,但它必须是 Nasm,因为我对 GAS 不太熟悉。
我的尝试:

有什么方法可以做到这一点,但使用 Nasm 而不是 GAS?

我想我需要在编译时添加一个参数。

0 投票
8 回答
94458 浏览

c - 将寄存器值读入 C 变量

我记得看到过一种使用扩展 gcc 内联汇编来读取寄存器值并将其存储到 C 变量中的方法。

尽管我一生都无法记住如何形成 asm 语句。

0 投票
5 回答
10887 浏览

c++ - 使用内联汇编获取调用我的函数的函数的地址

我想知道如何使用内联汇编检索调用我的函数的函数的地址。我的想法是获取调用 mine 的函数将返回的地址,并使用它之前的指令(即调用 mine 的函数)检索调用 mine 的函数的地址,并将其添加到给定的偏移量调用,到下一条指令的地址(调用我的函数将返回的地址)。到目前为止,我能够做到这一点,但要得到我的地址。它相当简单并且有效:

这可以很好地检索我的地址。(通过知道 [ebp+4] 是我的返回地址)

为了做同样的事情,但在上面一步,我试图获取旧的 ebp 并做同样的事情。我在一个站点上看到 [ebp+0] 是旧的 ebp,所以我尝试了:

但它不起作用。所以,我的假设是错误的,或者我做错了什么,所以我想请你帮忙。

0 投票
2 回答
10460 浏览

c - C/C++ 中的简单“Hello World”内联汇编语言程序

我使用 devcpp 和 borland c 编译器....

在上面的代码片段中,我想在汇编语言的帮助下打印一个字符串......但是我怎样才能将字符串的地址放在寄存器 cx 中......

代码有问题吗???

0 投票
1 回答
2840 浏览

visual-c++ - 内联汇编的初学者问题

我正在使用 VS2008 C++(无库)。这是我的代码:

我收到以下错误:

错误 1 ​​错误 C2400:“操作码”中的内联汇编语法错误;发现“错误令牌”
错误 2 错误 C2400:“操作码”中的内联汇编语法错误;发现“错误令牌”
错误 3 错误 C2400:“操作码”中的内联汇编语法错误;发现“坏令牌”

为什么是这样?

0 投票
4 回答
2188 浏览

c++ - 子程序的内联汇编程序调用

我对内联汇编器有疑问。可以在同一个函数中从内联汇编器调用另一个汇编器子例程吗?例如:

我应该在哪里以及如何编写子程序 sub123?

干杯,
托马斯

0 投票
5 回答
565 浏览

c++ - 为什么 MS C++ 将此代码添加到程序集中?

我有一些代码(内联汇编)。

MS C++ 自动将这些代码(标有 **)添加到我的程序中。
为什么?
如何避免?

0 投票
2 回答
245 浏览

c++ - 为什么 scanf 结果与用户输入不同?

当用户输入“023919”时,程序返回 19。
这是一个特征还是黑暗是一个标准?