x86-64是Intel x86架构的64位扩展
为什么简单的 FP 循环不自动矢量化,并且比 SIMD 内在函数计算慢?
(为什么?)即使使用 -03 和 -march=native 进行编译,编译器也不使用 SIMD 指令来计算总和的简单循环吗? 考虑以下两个函数: 浮点数 sum_simd(const std::
我有一个常量(64 位)地址,我想将其加载到寄存器中。该地址位于代码段中,因此可以相对于RIP 进行寻址。两者有什么区别 移动...
我有一个常量(64 位)地址,我想将其加载到寄存器中。该地址位于代码段中,因此可以相对于RIP 进行寻址。两者有什么区别 移动...
“%d”在哪里 " 存储的格式字符串以及 GCC 如何将其传递给 x86-64 上的 printf?
所以我正在调试一个简单的c程序,如下在gdb中查看程序集 #包括 #包括 int main() { 整数a=12; printf("%d “, A); }
(为什么?)simpe 循环不是矢量化的并且比 SIMD 计算慢吗?
(为什么?)即使使用 -03 和 -march=native 进行编译,编译器也不使用 SIMD 指令来计算总和的简单循环吗? 考虑以下两个函数: 浮点数 sum_simd(const std::
[编辑:这个问题有点老了,我仍在学习低级计算机的基础知识。我没有看到 db 0x41 被视为一条指令,而不是实际的 de...
最近开始学习x86汇编语言和CPU架构。我注意到 int 寄存器的总数是 8,但对于 x86-64 来说是 16。 为什么?一定有一些解释。
我想记住编译器如何执行整数除以 2。 有趣的是,我发现了一个我不理解的特殊行为: https://godbolt.org/z/87n3x5Gjv int div2(int x) { ...
作为我正在编写的 UEFI 应用程序的一部分,我希望我的应用程序在与此应用程序相同的文件夹中加载第二个应用程序。 但是,要做到这一点,我需要知道
在 x86 汇编中使用 idiv 除以 0 时出现 SIGFPE 异常。我如何从汇编中禁用它?我需要系统调用还是可以直接在 x86 中完成? 再生产: 测试.asm 默认相对值
mov rax,r9+rcx*2 为什么这个语法无效?这不算 mov r64,r/m64 吗?我是初学者,所以我为我的无知感到抱歉。 当表达式用方括号括起来时才有效mov ...
我继续使用 nasm 运行我的代码,并且不断出现分段错误。我认为这是因为我错误地退出了代码,但我已经没有关于如何更改它的想法了。 (x64 程序集) 我...
我必须编写一个程序,该程序逐个字符地读取给定文本文件并对其执行某些操作。 首先,我想打印每个字符并在到达文件末尾时停止。这两件事都...
我知道x87具有更高的内部精度,这可能是人们看到的它与SSE操作之间最大的区别。但我想知道,使用 x87 还有其他好处吗...
我正在用 C++ 构建一个简单的操作系统来了解该主题。我正在使用 Limine 引导加载程序(Limine 6.20231210.0,如引导加载程序版本请求所述)。我要做的第一件事之一......
我正在使用 Compiler Explorer,注意到 GCC 和 Clang 在编译这个简单函数(Compiler Explorer)时会发出看似不必要的与堆栈相关的指令。 空栏(空); ...
在使用 qemu 启动图像时,我正在尝试将键盘布局(即我们的键盘布局)更改为西班牙语。 我是否应该更改输出文件夹中的某些内容,或者配置 IM 时是否有选项...
我想询问 x86_64 处理器如何知道它处于 IA-32e 64 位子模式。 据我所知,EFER MSR(0xC0000080)内的LM位必须设置。此外,当前的 L 位...
我想使用SSE实现以下功能。它将 a 中的元素与 b 中的打包元素混合在一起,其中元素仅在使用时才出现。 无效的packedBlend16(uint8_t掩码,
我一直在尝试进一步优化这个展开的循环: 一些_循环: 展开_CNT = 256 ;至少最适合 Core i9-9900k 展开_I = 0 重复 UNROLL_CNT ; ; 1号座 ...