cpu-registers

    0热度

    1回答

    据我所知,当数据太长时,数据的地址被写入寄存器。当寄存器不长时,数据的实际值可以写入寄存器。一个寄存器如何检测寄存器中的值是数据的值还是数据的地址?如果它无法检测到,它会处理错误的值。 我发现了一个相关的问题(How is data, address and Instruction differentiated in Processor/Register/memory?)。但答案并不太满意。有更满

    2热度

    1回答

    在x86上,GDB使用一些特殊的硬件资源(调试寄存器?)来设置观察点。在某些情况下,当这些资源不足时,GDB将设置观察点,但它不起作用。 有没有什么办法可以以编程方式监视Linux上这些资源的可用性?也许在procfs中有些信息,或者其他的东西。我需要这些信息来选择池中的机器进行调试。 从GDB内幕: “,因为它们依赖于硬件资源,硬件断点可能数量有限;当用户要求更多,GDB会开始尝试设置软件断点(

    2热度

    2回答

    从http://www.parashift.com/c++-faq-lite/const-correctness.html#faq-18.14: 即使语言取缔const_cast,只有这样才能避免在一个const成员函数调用刷新寄存器高速缓存将是解决别名问题(即要证明不存在非 - const指向该对象的指针)。 什么是寄存器高速缓存,这是什么意思冲洗它跨越一个const成员函数调用?

    1热度

    1回答

    如何获得CR3值? 此外,如何获得进程A(比如Firefox)的CR3值? 是否有任何命令可以用来读取当前的CR3? 谢谢!

    3热度

    2回答

    饿了一部分,当我使用太多的寄存器,基本上有3个选项我能做得到的内核: 离开内核,因为它是导致低入住 集编译器使用数量较少的寄存器,它们溢出,导致糟糕的表现 重写内核 选项3,我想知道哪个内核的一部分需要记数的最大数量ERS。有没有任何工具或技术可以让我识别这部分?通过PTX代码(我在NVidia上开发)读取没有帮助,寄存器有很多数字,说实话,我能做的最好的是确定汇编代码的哪一部分映射到C代码的哪一

    1热度

    2回答

    为了测试性能,我已经给了一个任务来将小块asm转换为内在。 我从来没有开发任何一个代码,但我理解asm和c,并阅读内在的语法。但我无法找到有关内存访问寄存器的信息。我发现2个功能: getReg()和setReg() getReg()带有不同的寄存器表的表和他们的ID /数: - 通用整数寄存器 - 应用寄存器 - 控制寄存器 - 间接寄存器 但他们都没有对应像rax,rdi等asm寄存器。 我该

    1热度

    3回答

    我想了解asm中的寄存器,但是我看到的每个网站都只是假设我知道关于寄存器的一些信息,而我却无法控制它。我知道一本值得C++的书,据我所知mov var1,var2与var1 = var2是一样的,对吗? 但随着eax寄存器,我完全失去了。任何帮助表示赞赏。

    2热度

    1回答

    我想了解DMA控制器功能的来龙去脉。 我正在查看8237 DMA控制器。有些信息here有一些带有寄存器值的表格。 这些是DMA自己的寄存器,还是它们是CPU的寄存器?

    -1热度

    1回答

    如果尝试进入(si)sysenter指令,会发生什么情况?

    1热度

    1回答

    寄存器是最快的内存类型。在上下文切换时,寄存器必须将数据保存在某处,然后必须将正确的数据加载到该特定上下文的寄存器中。如果寄存器不存储和从其他寄存器中检索数据,这可能是一个缓慢的过程。 但我不确定哪些寄存器用于存储和检索上下文切换的数据。我不认为他们使用其他寄存器。他们使用什么? 另外,上下文切换发生的频率如何?