gcc 内联 asm 嵌入指向 .text 中的 .rodata 的指针,x86
我正在尝试使用内联汇编器在代码部分嵌入指向字符串的指针。但是 gcc 在符号名称的开头添加 $,导致链接错误。这是一个最小的示例, static const ch…
有人可以验证以下用于比较和设置的内联汇编代码 gcc 的正确性吗?
在我看来,该功能运行良好。我正在尝试为多线程应用程序实现一个计数器。由于计数器值可能超出整数范围,因此我使用 64 位。我不太确定线程安全性,因…
汇编代码中的读取访问冲突
这是我在 VC++ 项目中插入的简单 asm 代码。 return_addr 是堆栈帧的返回地址。我有一个 StackWalk 函数(不是我编写的 codeproject.com/KB/threads/S…
帮助:应用程序在访问源代码时崩溃
这是我在 VC++ 项目中插入的简单 asm 代码。 addr_curr_ebp是EBP指针的当前地址。它指向堆栈帧内的旧 EBP 值。此后的 4 个字节是应用程序函数内的返回…
如何嵌入内联汇编来调用 sys_unlink?
我尝试使用内联汇编调用 sys_unlink,如下所示: int sys_unlink(const char *filename) { int ret __asm__("int $0x80" : "=a"(ret) : "a"(10), "b"(…
GCC 内联 asm NOP 循环在编译时未展开
走出我通常的 VC++ 领域,进入 GCC 的世界(通过 MINGW32)。试图创建一个主要由 NOP 组成的 Windows PE,唉: for(i = 0 i < 1000 i++) { asm("nop…
帮助理解 x86 内联汇编中的 DIV 指令
在阅读 GNU 项目中的一些源代码时,我遇到了这段内联汇编: __asm__ ( "divq %4" : "=a" (q), "=d" (r) : "0" (n0), "1" (n1), "rm" (d) ) 这里的变量…
如何在 gcc 内联 x86_64 asm 中进行 128 位数字的原子复制?
我自从上学以来(很久以前)就没有做过汇编,也从来没有做过任何x86,但我在旧的现有代码中发现了一个令人讨厌的错误,其中有人没有在他们应该做的地…
访问嵌入式 X86 汇编中的特定位
我正在尝试访问特定位并修改它。 我已将 0x01ABCDEF(十六进制值)移至 ecx 中,并希望能够检查特定位置的位值。 例如我必须取 0x01ABCDEF (0xEF) 的…
c++: asm 破坏列表
在g++中,可以指定asm的破坏列表,例如: asm ("somecode" : : "r1", "r2", "r3") 这意味着asm代码更改寄存器r1,r2,r3。 现在,我更改的寄存器依赖…
为什么某些汇编指令没有记录在案
Delphi 源代码中有一些汇编指令,我在汇编备忘单中找不到,包括: fld fabs fcompp fstsw 我在“Power”函数中阅读了这些汇编指令;但我在此备忘单或…
X86内联汇编,写入C数组
程序集信息:使用 Visual Studio 2010 编写嵌入到 C 中的内联程序集 您好, 我正在尝试用 C 写入字符数组,并尝试模仿此 C 代码的操作: resNum[posNu…