为什么VMMAP在Windows 10上为任何给定的过程显示128TB的虚拟内存地址空间?
Windows应该将地址空间划分为拆分,低128 TB应该用于用户空间,然后在X86非典型地址之后,较高的128TB应该属于内核空间。 我打开了vmmap来查看一个过…
在MUL上携带标志大于2^128?
如果以下代码导致大于2^128的东西会产生(输出)吗? mov rdx, -1 //rdx = 0xff...f mov rax, -1 //rax = 0xff...f mov rbx, -1 //rbx = 0xff...f mul…
将SS寄存器设置为bootloader中的0时,CPU重置(CPU 0)和三重故障
我正在尝试创建一个自定义操作系统(用于教育目的),我也为此创建了引导加载程序(Multiboot 2)。我正在尝试创建一个64位系统。 输入长模式后,我想…
由Mingw X86_64-W64-MINGW32编译的可执行文件在Windows上不起作用
我正在尝试在Linux上创建一个在Windows 64bit上创建可执行文件的作品。 我正在使用 mxe 在我的Ubuntu Server上交叉编译C文件。 然后将C文件编译为.exe…
sizeof(atomic< t>)并不总是等于sizeof< t>
sizeof(atomic< t>)的返回值并不总是等于 sizeof(t) 的返回值,基于[atomics.generic.types.generic types.generic type ]/p9: 注意:…
为什么OpenVolume在QEMU中引起#GD错误?
我正在研究UEFI应用程序的NASM实施。我需要做的一件事是在其“文件系统”上读取文件。为此,我使用的是EFI_SIMPLE_FILE_SYSTEM协议和OpenVolume方法。…
为什么添加XORP指令会使用CVTSI2SS和添加〜5倍的速度使此功能更快?
我正在使用Google基准进行优化功能,并遇到了我的代码在某些情况下出乎意料地放慢速度的情况。我开始尝试它,查看汇编的组件,并最终提出了一个最小的…
为什么printf仍然可以使用RAX低于XMM寄存器中的FP ARG数量?
我关注Linux 64系统中的“ Benter X64组装编程”一书。我正在使用NASM和GCC。 在有关浮点操作的一章中,该书指定了以下代码添加2个浮点数。在本书和其…
在汇编器AT& t上下文中:Movl在指定的行中有什么作用?
我在C中有一些简单的代码行,并希望将其拆卸: #include int main(){ int i=42; } 对其进行编译并启动GDB,我根本找不到我的值= 42在相应的位置: 不…
用X64 Simd换nibble
我知道 byte shuffling 指令,但是我想对Nibbles做同样的事情(4位值),我想用一个64位单词将16个小吃洗净。我的洗牌索引也被存储为16个小吃。最有效…
预取依赖数据依赖分支以避免错误预测
在下面的示例中,我假设功能 f1 - f4 很慢,但短且内衬。我对迭代 i = j 很明显,迭代的分支 i = j+1 取决于 data [j+1]的值因此,我可以在迭代的计算…
针对`.text'在汇编中执行分支查找开关时,无法使用PIE对象时使用
我正在x86-64汇编中编写一个项目,我想使用分支查找表编写一个有效的开关语句。但是,我会遇到独立错误。 我将从我的代码开始。大会取自这个答案。 汇…