问题标签 [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.
c++ - 在 .intel_syntax GNU C 内联汇编中引用内存操作数
在使用内联汇编编译和链接源文件时,我遇到了链接错误。
以下是测试文件:
编译和链接程序会导致:
真正的程序更复杂。该例程没有寄存器,因此标志rnds_00_15
必须是内存操作数。对 asm 块的使用rnds_00_15
是本地的。它在 C 代码中声明以确保在堆栈上分配内存,仅此而已。就 C 代码而言,我们不会读取或写入它。我们将它列为内存输入,以便 GCC 知道我们使用它并在扩展 ASM 中连接“C 变量名”。
为什么我会收到链接错误,我该如何解决?
assembly - 很少的汇编语法问题和反汇编代码的解释
我正在尝试在某些练习/挑战中对可执行文件进行逆向工程。
我在 IDA64 反汇编程序中打开了该文件。大多数代码是隐藏的,但三个子例程是可见的(包括开始)。我在组装方面的主要经验是在学校使用 MIPS - 所以我几乎没有什么让我感到困惑的事情:
这条线是什么意思?ebx 地址的值是 0 还是只是它的第一个字节?
/li>当我看到这两行代码时,地址'1000h'是什么?含义 - 我在哪里可以找到它,里面有什么?IDA 中的所有代码都从 401000 开始。
/li>是否有任何关于 eax、ebx 和 esi 寄存器的约定,我应该假设它们在代码开头有什么?可执行文件要求用户输入 - 我可以假设这个输入在任何特定的寄存器中吗?
linux - 在装配中出现分段错误
程序收到信号 SIGSEGV,分段错误。
我正在使用这个汇编程序:由于某种原因,我遇到了分段错误,它与堆栈有关吗?这个程序甚至应该输出什么?有人告诉我运行它,看看它做了什么,有什么想法吗?我认为这会有问题并发表了一篇关于它的帖子,但这不是问题,我尝试使用 GDB 对其进行调试,但这并没有真正帮助。如果你能告诉我它的输出可能会更好,这就是我真正想要的
assembly - 如何通过 PC BIOS 调用更改像素颜色?
我正在尝试用 16 位 x86 程序集制作一个相当简单的图形游戏。特别是,我希望能够改变像素的颜色。
我已经有一个模拟的引导加载程序(qemu)和一段代码,它可以让游戏在启动时运行,以便它可以访问某些与图形相关的组件。
经过一番研究,我发现了以下论文,该论文记录了中断 10h 的使用,从而为我们提供了以下代码来更改像素的颜色:
但是我正在使用 AT&T 语法(教育目的)制作游戏。因此,我尝试使用该语法找出它,从而产生以下代码:
但是,这不起作用,我真的不明白为什么。因此,我希望有人能指出我如何改变像素颜色的正确方向。
assembly - GAS Intel 语法中的 GOTPCREL(%rip)
我如何编写以下内容:movq variable@GOTPCREL(%rip), %r8
在 GAS Intel 语法中?
.intel_syntax noprefix
只允许这样:mov r8, variable@GOTPCREL
,它不理解()
,并且生成的代码不同-我收到分段错误。如何指定 RIP 相对寻址?
此时我必须使用以下语法切换器:
我更喜欢 Intel 语法,我的代码主要使用它。在将代码移植到 GAS 时,此切换器很不方便。是否可以用 Intel 语法快速编写它?
assembly - x86-64 操作数的组装顺序
x86-64汇编中操作数的顺序是什么?:指令目标,源或:指令源,目标
我有三本书和两种不同的方法!
assembly - 分段符号
我试图了解一些为 MS DOS 编写的程序。指令 mov ax, ds:4Ch 是移动 ds*16 + 4Ch 的值还是移动存储在地址 ds*16 + 4Ch 的值?
c - mov 和 add 由于某种原因什么也没做
我从我的大学教授那里得到了这段代码,所以我相当肯定代码有效,但对我来说,输出总是 0。
我在 Windows 和虚拟 Ubuntu 机器上尝试过,但还是一样。
我正在使用 mingw 进行编译:
gcc test.c test.s
这是C代码:
这是组装:
对于输入 2 和 3,它应该输出 5,但它始终为 0。
visual-studio - Visual Studio C++ 程序集 | 括号的含义?
我正在尝试比较两段代码的程序集,它们如下所示。我的问题是添加[esp+4] [esp+8] [esp+0Ch]
是在运行时执行的,还是在此之前以某种方式解决的。
版本 1
版本 2
gcc - ASM:“mov”的内存引用过多
又是我,我的 idt.S 文件中有一个新问题(使用 gcc 编译的 Intel 语法)。当我尝试编译以下代码时:
我收到一个我真的不知道如何解决的错误: