问题标签 [intel-syntax]

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 投票
0 回答
571 浏览

c - 使用 gcc(英特尔语法)创建“原始”汇编代码

我想用 gcc 创建一些汇编代码。当我使用时,gcc -masm=intel -S test.c我得到了满满的汇编代码.def.cfi无法组装的标签。有没有办法在没有这个标签的情况下创建汇编代码?

例如:一个简单的 c 代码,如:

编译为:

但我想要的是这样的:

我希望有办法做到这一点。先谢谢了。

0 投票
1 回答
2705 浏览

c - 让 ASM 中的库在 C 中访问它?

我知道您可以使用ASM直接将 ASM 放入 C 中,但我想知道是否可以在 Assembly 中创建一个库,对其进行编译,然后从 C 访问您在该库中声明的函数?

所以我知道我应该使用预先编写的库,但这只是为了教育目的和娱乐!例如,假设我想使用 sys 调用打印到屏幕上,现在我编写了一些程序集来执行此操作并将函数命名为 print,然后将其编译为某种 lib 文件 .so/.lib/.a那时我会做什么来引用该库中的该函数?

我只是写出函数并在编译时链接它吗?

谢谢 :)

0 投票
1 回答
1339 浏览

c - 汇编中的字符串复制

我在将字符串复制到 Assembly 中的空数组时遇到问题。

首先,我得到了一些我想复制的垃圾而不是字符串。

其次,该程序应该使用最多 100 个字符的字符串,但是当我声明一个包含 100 个字符的数组时,我在使用 gcc 编译后得到“ ***堆栈粉碎检测*** ”。

我是大会的新手,所以请帮助我。

先感谢您

0 投票
1 回答
172 浏览

c - 汇编中的 C 程序

我必须在汇编中编写一个简短的程序,但我的版本不起作用。它应该打印 ASCII 字符,然后通过 atoi 函数将其更改为整数值并打印出该值。重要的是使用 C 中的程序:puts() 和 atoi()。

我做错了什么?请尽可能清楚地为我解释。我正在使用 gcc,并且正在使用 intel_syntax 程序集编写代码。

这是我的代码:

先感谢您

0 投票
1 回答
2045 浏览

c++ - 带有变量的 GCC 内联 ASM

我试图在我的 C++ 源代码中使用以下 ASM 内联代码,为 Visual Studio 提供:

其中 target 是一个 void* 指针。我不知道如何将其转换为与 GCC 兼容的代码。我知道 GCC 使用如下合成器:

但显然在这种情况下变量存在问题。那么,任何人都可以向我解释如何使用 GCC for Windows 使用带有内联 ASM 的指针?

谢谢你的帮助。

0 投票
1 回答
855 浏览

c - 使用英特尔语法中的内联汇编编译内核模块

我不想编写一个使用大量内联汇编的内核模块。因为我习惯了 Intel 语法,所以我想完全避免 AT&T 语法。以下最小示例显示了执行此操作的一种方法:

示例模块.c

生成文件

所以,每当我想内联汇编时,我都有两个 write .intel_syntax noprefix\n...\n.att_syntax noprefix\n。还有其他方法可以做到这一点吗?使用 gcc 编译时,我过去只是将-masm=intel参数传递给 gcc,这使我可以自由使用 Intel 语法。在这种情况下是否有类似的可能?

0 投票
1 回答
11275 浏览

assembly - 关于 [base + index*scale + disp] 的几个问题

Intel 和 AT&T 语法中内存寻址的一般形式如下:

我的问题如下:

  • 可以是任何寄存器吗baseindex
  • 可以取什么值scale,是 1、2、4 和 8(默认值为 1)?
  • 是否可以互换(唯一indexdisp区别index是寄存器disp是立即数)?
0 投票
1 回答
314 浏览

linux - 汇编语言和打印结果。斐波那契数列

我在 x86 Linux 上使用 Assembly,并带有 Intel 8086 的说明。我的程序有问题,它应该计算斐波那契数列的元素。

我使用 args 运行的这个程序,例如:

./fibb 1 2 3 ,

什么意思:序列的第一个元素是1,第二个元素是2,我们想得到第三个。该示例效果很好,但是当我尝试运行时:

./fibb 1 2 4 ,

然后我有一些垃圾。请帮我。我是Assembly的新手,所以请清楚地解释我做错了什么。这是我的代码:

0 投票
1 回答
96 浏览

assembly - NASM/Yasm 在评论以反斜杠结尾后放弃 CALL

我目前正在尝试构建自己的引导加载程序,并注意到一些奇怪的东西。

当下面的代码用 NASM 或 Yasm 组装而没有标记的 NOP 命令时,二进制文件中缺少以下 CALL。在包含 NOP 的情况下,CALL 已正确组装,但二进制文件中不存在操作码 0x90 (NOP)(由于 NOP 的性质,稍后可以理解)。

0 投票
1 回答
276 浏览

x86 - x86反汇编中“EC”的含义

我正在尝试拆卸十六进制“8B EC”。反汇编程序给了我mov ebp, esp

  • “8B” -MOV指令;
  • “欧共体” - ???;

反汇编程序如何知道“EC”是ebp, esp