x86是一个源自Intel 8086 CPU的架构。 x86系列包括32位IA-32和64位x86-64架构,以及传统的16位架构。关于后者的问题应该标记为[x86-16]和/或[emu8086]。如果您的问题特定于64位x86-64,请使用[x86-64]标记。对于x86 FPU,请使用标记[x87]。对于SSE1 / 2/3/4 / AVX *,也可以使用[sse]和[avx] / [avx2] / [avx512]中的任何一个
如何在Linux和x86上重新映射PCIe Bar地址以及配置空间如何分配MMIO?
我对 x86 上的 Linux 中的 PCIe 子系统的详细工作原理存有疑问。 据我所知,要仅使用 mmio 与 PCIe 设备通信,需要执行以下操作: PCIe 配置空间...
我想将 SSE/AVX 寄存器左移或右移 32 位的倍数,同时移入零。 让我更准确地说明我感兴趣的轮班。对于 SSE,我想做以下轮班......
给定一个具有恒定 TSC 的 x86,这对于测量实时非常有用,如何使用 th 在 TSC 参考周期的“单位”和纳秒等正常人类实时单位之间进行转换...
我已经设置了32位保护模式,并尝试通过C和汇编加载全局描述符表(GDT),并尝试通过check_gdt()函数打印不同的寄存器值,其中 无效 check_gdt() {
我从命令行在我的 linux-x86 上安装了最新版本的 gcc。 /usr/bin/ 显示了两个 gcc,即 gcc 和 gcc-4.4。浏览了几个站点后,我导航到我的 /usr/lib/gcc/i686-li...
我正在尝试从命令行使用 devenv.exe 编译 Visual Studio 解决方案。我可以让它工作,但解决方案中的所有项目都是针对 AnyCPU 编译的,我希望它们能够合作...
我正在学习操作系统开发教程,作为一名狂热爱好者,我在代码中发现了一行引起了我注意的内容: 位 16 部分_ENTRY CLASS=代码 外部_cstart_
如果 x86 中的 movaps 与现代计算机中的 movups 相同,那么它有什么意义
我正在嵌入式系统中编写memset函数,我发现最快的方法是使用xmm movups,但我的内存已经对齐,所以我决定使用movaps来获得更快和更小的分辨率...
我今天开始学习汇编,我编写了一个程序来打印数字的阶乘。它对于个位数阶乘非常有效,但是当我对其进行一些更改以使其适用于更大的数字时......
我今天开始学习汇编,我编写了一个程序来打印数字的阶乘。它对于个位数阶乘非常有效,但是当我对其进行一些更改以使其适用于更大的数字时......
为什么我的 NASM 代码在将 db 字节变量打印为 int 时打印出一个很大的值?
我正在用 nasm 编码,但我不明白发生了什么。 Linux 发行版是 Ubuntu 16 64 位,但 NASM 以 32 位运行。 预期输出-->“数字是:2” 实际输出--&...
作为 Linux 内核课程的一部分,我们解释了硬件可能不支持高分辨率计时器。影响这种支持的硬件只有CPU。 所以我花了我的时间...
有人可以详细说明芯片组上存在的 IME 的初始化吗?它是否在处理器退出复位之前初始化?制造模式如何处理?
我正在为 Pentium 编写 64 位汇编代码。我正在使用 Microsoft Visual C/C++ 和 MASM。在汇编代码中,我编写了以下代码片段来调用 printf: 推送接收 噗...
我需要将手动输入的数组元素逐个写入屏幕,但是当我尝试写入第一个数组元素时,我在屏幕上得到5的输出。 我还需要兑换第五个...
我需要将手动输入的数组元素逐个写入屏幕,但是当我尝试写入第一个数组元素时,我在屏幕上得到5的输出。 我还需要兑换第五个...
我必须在汇编 x86 32 位中转置一个矩阵,将结果存储在另一个矩阵中,然后将其打印在屏幕上。 但我没有得到正确的结果,我也不明白为什么。我想是的
目前我正在阅读CSAPP 3d版,我发现说明有点冗长(在我看来)就像vucommiss一样,所以我搜索了说明的全名以帮助记忆。 我找到了
我目前正在探索堆栈帧以及它们如何在 C 程序中工作,特别是在未受保护的 32 位 x86 系统上(没有 ASLR、堆栈金丝雀或 DEP)。我主要不是一名计算机科学学生——我是一名物理学学生