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]中的任何一个
mov指令有4种类型:movb,movw,movl。后缀b,w,l表示源寄存器的大小。然而,在组装时,我发现了这些后缀的问题。见下面的例子。 .global主...
我有一个简单的程序:int main(){return 2 * 7; GCC和clang优化启动时会生成2指令二进制,但icc会产生奇怪的输出。推rbp ...
如果我的问题听起来毫无意义,请原谅我。但我很困惑,比如说我在定义常量buffer_size,我正在研究的代码上有一行代码:buffer_size equ 16,...
我正在研究一种以大端格式将64位值存储到内存中的函数。我希望我能编写可在小端和大端平台上运行的便携式C99代码,并且...
我目前正在尝试了解某段代码。我在这里找到:http://mikeos.sourceforge.net/write-your-own-os.html特别是开始标签下的前两行:BITS 16 ......
我尝试从asm代码调用printf函数。 hello.asm:%macro exit 0 mov eax,1 mov ebx,0 int 80h%endmacro extern printf; C函数,被称为SECTION .data ...
阅读intel x86手册和其他资源,我不明白DPL(描述符权限级别)和RPL(请求权限级别)之间的区别。为什么两者都有必要?谢谢 ...
int main(){// X是共享资源initSharedResourceX(); startMultitreadingServer(); //与函数句柄()同时处理请求
我正在学习英特尔微处理器课程,并阅读有关微处理器和寄存器的内容,我对微处理器之间的寄存器差异感到困惑。例如,我知道x86有8 ...
在硬件向量指针和相应类型之间`reinterpret_cast`是一个未定义的行为吗?
做这样的事情是合法的吗? constexpr size_t _m256_float_step_sz = sizeof(__ m256)/ sizeof(float); alignas(__ m256)float stack_store [100 * _m256_float_step_sz] {}; __m256&hwvec1 = * ...
x86机器上的不同CPU可以具有不同的本地APIC寄存器MMIO基址吗?
英特尔手册称本地APIC寄存器的存储器映射到4KB区域,默认地址为FEE00000H。可以使用IA32_APIC_BASE MSR修改此地址。引用SDM第3卷,......
我正在为最近一直在研究的业余爱好虚拟机编写JIT编译器。我知道一点装配,(我主要是一个C程序员。我可以阅读大多数装配参考...
已知的问题是混合VEX编码的指令和非VEX指令会受到惩罚,程序员必须意识到这一点。有一些像这样的问题和答案。解决方案......
作为一个小小的召回,x86架构将0x0F 0x1F [mod R / M]定义为多字节NOP。现在我看一下8字节NOP的具体情况:我有0x0F 0x1F 0x84 0x__ 0x__ 0x__ 0x__ 0x__ ...
SFENCE是否会阻止Store Buffer隐藏MESI的更改?
如果Core写入但其高速缓存行不存在于其L1中,则它将写入存储缓冲区。另一个Core请求缓存行,MESI无法看到Store Buffer更新并返回...
我有一个缓冲区,其中包含:'bac \ n',我正在尝试交换字母'b'和'a'我检查了调试器,它在ebp指向的地址上打印了4个字节:'bac \ n'ebp - ......的地址
后向内存预取是否与Xeon CPU(E5-2603)中的前向内存预取一样快?我想实现一种算法,该算法既需要数据的正向循环,也需要反向循环。由于每个......
我试图使用clflush手动驱逐缓存行,以确定缓存和行大小。我没有找到任何关于如何使用该指令的指南。我所看到的,是一些使用更高的代码......
Linux是否为TLB使用x86 CPU的PCID功能?如果没有,为什么?
我写了一个内核模块来检查CR4.PCIDE,它没有设置。为什么Linux不使用这样的功能来减少因TLB失效和缓存污染导致的性能下降?
我不知道集会的深度。以下代码用于写入硬件端口。编译器在使用内联asm的每一行中都给出操作数类型不匹配错误。当我编译时,我得到这些错误:...