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

c++ - 在 .intel_syntax GNU C 内联汇编中引用内存操作数

在使用内联汇编编译和链接源文件时,我遇到了链接错误。

以下是测试文件:

编译和链接程序会导致:

真正的程序更复杂。该例程没有寄存器,因此标志rnds_00_15必须是内存操作数。对 asm 块的使用rnds_00_15是本地的。它在 C 代码中声明以确保在堆栈上分配内存,仅此而已。就 C 代码而言,我们不会读取或写入它。我们将它列为内存输入,以便 GCC 知道我们使用它并在扩展 ASM 中连接“C 变量名”。

为什么我会收到链接错误,我该如何解决?

0 投票
1 回答
106 浏览

assembly - 很少的汇编语法问题和反汇编代码的解释

我正在尝试在某些练习/挑战中对可执行文件进行逆向工程。

我在 IDA64 反汇编程序中打开了该文件。大多数代码是隐藏的,但三个子例程是可见的(包括开始)。我在组装方面的主要经验是在学校使用 MIPS - 所以我几乎没有什么让我感到困惑的事情:

  1. 这条线是什么意思?ebx 地址的值是 0 还是只是它的第一个字节?

    /li>
  2. 当我看到这两行代码时,地址'1000h'是什么?含义 - 我在哪里可以找到它,里面有什么?IDA 中的所有代码都从 401000 开始。

    /li>
  3. 是否有任何关于 eax、ebx 和 esi 寄存器的约定,我应该假设它们在代码开头有什么?可执行文件要求用户输入 - 我可以假设这个输入在任何特定的寄存器中吗?

0 投票
0 回答
91 浏览

linux - 在装配中出现分段错误

程序收到信号 SIGSEGV,分段错误。

我正在使用这个汇编程序:由于某种原因,我遇到了分段错误,它与堆栈有关吗?这个程序甚至应该输出什么?有人告诉我运行它,看看它做了什么,有什么想法吗?我认为这会有问题并发表了一篇关于它的帖子,但这不是问题,我尝试使用 GDB 对其进行调试,但这并没有真正帮助。如果你能告诉我它的输出可能会更好,这就是我真正想要的

0 投票
0 回答
822 浏览

assembly - 如何通过 PC BIOS 调用更改像素颜色?

我正在尝试用 16 位 x86 程序集制作一个相当简单的图形游戏。特别是,我希望能够改变像素的颜色。

我已经有一个模拟的引导加载程序(qemu)和一段代码,它可以让游戏在启动时运行,以便它可以访问某些与图形相关的组件。

经过一番研究,我发现了以下论文,该论文记录了中断 10h 的使用,从而为我们提供了以下代码来更改像素的颜色:

但是我正在使用 AT&T 语法(教育目的)制作游戏。因此,我尝试使用该语法找出它,从而产生以下代码:

但是,这不起作用,我真的不明白为什么。因此,我希望有人能指出我如何改变像素颜色的正确方向。

0 投票
2 回答
1532 浏览

assembly - GAS Intel 语法中的 GOTPCREL(%rip)

我如何编写以下内容:movq variable@GOTPCREL(%rip), %r8在 GAS Intel 语法中?

.intel_syntax noprefix只允许这样:mov r8, variable@GOTPCREL,它不理解(),并且生成的代码不同-我收到分段错误。如何指定 RIP 相对寻址?

此时我必须使用以下语法切换器:

我更喜欢 Intel 语法,我的代码主要使用。在将代码移植到 GAS 时,此切换器很不方便。是否可以用 Intel 语法快速编写它?

0 投票
1 回答
1431 浏览

assembly - x86-64 操作数的组装顺序

x86-64汇编中操作数的顺序是什么?:指令目标,源或:指令源,目标

我有三本书和两种不同的方法!

0 投票
1 回答
67 浏览

assembly - 分段符号

我试图了解一些为 MS DOS 编写的程序。指令 mov ax, ds:4Ch 是移动 ds*16 + 4Ch 的值还是移动存储在地址 ds*16 + 4Ch 的值?

0 投票
1 回答
113 浏览

c - mov 和 add 由于某种原因什么也没做

我从我的大学教授那里得到了这段代码,所以我相当肯定代码有效,但对我来说,输出总是 0。

我在 Windows 和虚拟 Ubuntu 机器上尝试过,但还是一样。

我正在使用 mingw 进行编译:

gcc test.c test.s

这是C代码:

这是组装:

对于输入 2 和 3,它应该输出 5,但它始终为 0。

0 投票
1 回答
134 浏览

visual-studio - Visual Studio C++ 程序集 | 括号的含义?

我正在尝试比较两段代码的程序集,它们如下所示。我的问题是添加[esp+4] [esp+8] [esp+0Ch]是在运行时执行的,还是在此之前以某种方式解决的。

版本 1

版本 2

0 投票
1 回答
2356 浏览

gcc - ASM:“mov”的内存引用过多

又是我,我的 idt.S 文件中有一个新问题(使用 gcc 编译的 Intel 语法)。当我尝试编译以下代码时:

我收到一个我真的不知道如何解决的错误: