Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
为什么允许 gcc 从结构推测加载?
显示 gcc 优化和可能出现故障的用户代码的示例 下面代码片段中的函数 foo 将仅加载结构成员 A 或 B 之一 至少这是未优化代码的意图 typedef struct int A int B Pair int foo const Pai
c
gcc
Assembly
x86
compileroptimization
源操作数和目标操作数是否需要相同大小?
我刚刚尝试了这个问题 要求你解释一下代码行有什么问题 movl eax rdx 解决方案表明目标操作数的大小错误 仅当从较大尺寸变为较小尺寸时才 非法 还是源操作数和目标操作数对于所有指令 或至少 mov 类类型 必须具有相同的尺寸 是的
Assembly
x86
x8664
从地址获取上一条指令的开头
我们在缓冲区中查看 x86 操作码 标记当前指针 68 0F 00 6A 90 00 找到下一条指令的开始很容易 因为电流的大小是可以确定的 但是你如何才能准确地猜出前一个的开始呢 68 0F 00 6A 90 总共 5 个字节 结束于 0
Assembly
x86
FASM 是否使用 Intel 语法?
我尝试在 FASM 中编译以下代码 mov DWORD PTR ebp 4 1234567 它给了我一个 无效表达式 错误 但是以下代码有效 mov DWORD ebp 4 1234567 那么 FASM 是否使用 Intel 语法 我假设
Assembly
x86
fasm
字大小及其指示
请参阅下面关于各种指令集架构中的字长以及它与汇编语言的关系的问题 感谢您提供的所有帮助 先说几个事实 如有错误 请指正 处理器架构的字长表示 编辑 其中一些是错误的 请参阅下面 Seva 的帖子 每个寄存器的最大尺寸 每个内存地址的最大尺寸
Assembly
cpuword
cpuarchitecture
x86
调用always_inline‘_mm_mullo_epi32’时内联失败:目标特定选项不匹配
我正在尝试使用 cmake 编译 C 程序 该程序使用 SIMD 内在函数 当我尝试编译它时 出现两个错误 usr lib gcc x86 64 linux gnu 5 include smmintrin h 326 1 错误 调用alwa
c
CMake
x86
SSE
SIMD
如何在汇编器中实现相对 JMP (x86)?
在为 x86 平台构建汇编程序时 我遇到了一些编码问题JMP操作说明 OPCODE INSTRUCTION SIZE EB cb JMP rel8 2 E9 cw JMP rel16 4 because of 0x66 16 bit pre
encoding
x86
instructionset
如何使用 Java 确定 Windows 是 32 位还是 64 位体系结构?
如何使用 Java 确定 Windows 是 32 位还是 64 位体系结构 我不太相信读取 os arch 系统变量 如果用户在 64 位系统上运行 64 位 JVM 则它可以工作 如果用户在 64 位系统上运行 32 位 JVM 则它不
Java
Windows
x86
64bit
逆向工程的汇编语言[关闭]
就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
c
Assembly
x86
reverseengineering
MASM
计算 Amd Zen 2 处理器上的 L3 缓存访问事件
我试图找出与 perf stat 命令一起使用的事件来计算 AMD Zen 2 处理器上的 L3 缓存访问次数 根据 PPR http developer amd com wordpress media 2017 11 54945 PPR
Linux
x86
cpucache
perf
amdprocessor
使用 gdb 在指定的可执行文件之外单步执行汇编代码会导致错误“无法找到当前函数的边界”
我在 gdb 的目标可执行文件之外 甚至没有与该目标对应的堆栈 无论如何 我想单步执行 以便我可以验证汇编代码中发生了什么 因为我不是 x86 汇编方面的专家 不幸的是 gdb 拒绝进行这种简单的汇编级调试 它允许我设置并停止在适当的断点上
Linux
Assembly
GDB
x86
Linuxkernel
SSE加载和添加
假设我有两个由两个类型数组表示的向量double 每个尺寸为2 我想添加相应的位置 所以假设向量i0 and i1 我想补充一下i0 0 i1 0 and i0 1 i1 1 一起 由于类型是double 我需要两个寄存器 诀窍是把i0 0
c
x86
SSE
SIMD
intrinsics
x86 asm 反汇编程序库
是否有任何可从 NET 调用的库 我可以在其中传递二进制数据并将其反汇编为 x86 汇编代码 如果您不介意使用 P Invoke 绑定到非托管 dll 请查看比引擎 http www beaengine org 它是您可能找到的最好的反汇编
Assembly
x86
disassembly
为什么 Linux/gnu 链接器选择地址 0x400000?
我正在 Linux x86 64 上试验 ELF 可执行文件和 gnu 工具链 我已经链接并剥离 手动 Hello World 测试 global start text start mov 1 rax 转换为 267 字节 ELF64 可执
Linux
x86
x8664
ld
ELF
如何在 x86_64 上准确地衡量未对齐访问速度?
In 一个答案 https stackoverflow com questions 45116212 are packed structs portable 45116730 45116730 我已经说过 在很长一段时间内 未对齐访问的速度
performance
x86
x8664
benchmarking
inlineassembly
如果您的程序+库不包含 SSE 指令,那么使用 VZEROUPPER 有用吗?
我明白使用它很重要VZEROUPPER混合 SSE 和 AVX 代码时 但如果我只使用 AVX 和普通 x86 64 代码 而不使用任何旧版 SSE 指令怎么办 如果我从未在代码中使用单个 SSE 指令 是否有任何性能原因导致我需要使用VZ
performance
Assembly
x86
avx
microoptimization
如何在 GCC x86 中使用 RDTSC 计算时钟周期? [复制]
这个问题在这里已经有答案了 使用 Visual Studio 我可以从处理器读取时钟周期计数 如下所示 我如何对 GCC 做同样的事情 ifdef MSC VER Compiler Microsoft Visual Studio ifdef
c
gcc
x86
RDTSC
如何将 IA32 'cmp' 指令转换为 Y86?
IA32 to Y86 ATT组装 我有以下 IA32 汇编代码 Bubble LFB0 pushl esi pushl ebx movl 16 esp esi movl 12 esp edx subl 1 esi andl esi esi
Assembly
x86
cmp
y86
假设没有非时间指令,“xchg”是否包含“mfence”?
我已经看过了这个答案 https stackoverflow com a 50279772 391161 and 这个答案 https stackoverflow com a 19099164 391161 但似乎都没有清楚明确地说明等价或
Multithreading
Assembly
x86
intel
memorybarriers
算术恒等式和 EFLAGS
因为 x not x 1 意味着 a b a not b 1 那么 sub rax rcx 相当于 mov temp rcx not temp add rax temp add rax 1 其中 temp 是一些被认为是易失性的寄存器 换句
Assembly
x86
x8664
eflags
«
1
2
3
4
5
6
...49
»