cpu-registers

    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的寄存器?

    0熱度

    1回答

    據我所知,當數據太長時,數據的地址被寫入寄存器。當寄存器不長時,數據的實際值可以寫入寄存器。一個寄存器如何檢測寄存器中的值是數據的值還是數據的地址?如果它無法檢測到,它會處理錯誤的值。 我發現了一個相關的問題(How is data, address and Instruction differentiated in Processor/Register/memory?)。但答案並不太滿意。有更滿

    -1熱度

    1回答

    如果嘗試進入(si)sysenter指令,會發生什麼情況?

    1熱度

    1回答

    寄存器是最快的內存類型。在上下文切換時,寄存器必須將數據保存在某處,然後必須將正確的數據加載到該特定上下文的寄存器中。如果寄存器不存儲和從其他寄存器中檢索數據,這可能是一個緩慢的過程。 但我不確定哪些寄存器用於存儲和檢索上下文切換的數據。我不認爲他們使用其他寄存器。他們使用什麼? 另外,上下文切換髮生的頻率如何?

    2熱度

    1回答

    在x86上,GDB使用一些特殊的硬件資源(調試寄存器?)來設置觀察點。在某些情況下,當這些資源不足時,GDB將設置觀察點,但它不起作用。 有沒有什麼辦法可以以編程方式監視Linux上這些資源的可用性?也許在procfs中有些信息,或者其他的東西。我需要這些信息來選擇池中的機器進行調試。 從GDB內幕: 「,因爲它們依賴於硬件資源,硬件斷點可能數量有限;當用戶要求更多,GDB會開始嘗試設置軟件斷點(

    2熱度

    1回答

    我想在我的斷言函數中打印$ra(返回地址)寄存器以用於調試目的。我正在研究MIPS CPU。 我試着下面的代碼,但編譯器不喜歡它: unsigned int RA; unsigned int* pRA = &RA; asm volatile("sw $ra, %0" : "=r" (pRA)); 或 static volatile unsigned int RA; asm ("mov $