cpu-registers

    0熱度

    1回答

    我在讀一本關於MIPS的書。在那本書中,我找到了下圖,其中D代表數據,Clk是時鐘。有人可以解釋我,因爲我不是來自電氣工程背景(我來自計算機工程背景)。數據中的十字(數字)是什麼?

    2熱度

    2回答

    我想讀和我下面這些步驟ARM9(SAM9X25)寫寄存器:http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka3750.html 我用下面的代碼結束: #include "stdio.h" #define PIO_WPMR_BANK_D 0xFFFFFAE4 // PIO Write Protectio

    0熱度

    3回答

    我的問題特定於手臂皮質M3微控制器。微控制器上的每個外設都是內存映射的,這些內存地址用於處理。 例如:GPIOA-> ODR = 0; 這將在地址0x4001080C處寫入0。 該地址在微控制器的特定設備文件中定義。 現在,皮質M3有處理器內核寄存器R0-R12(通用)。我想知道,這些寄存器是否也有像其他外設一樣的地址? 所以,如果我有指令:MOV R0,#10; 將R0翻譯成某個地址時組裝?核心

    -1熱度

    2回答

    我想通過mmap訪問我的ARM(https://4donline.ihs.com/images/VipMasterIC/IC/ATML/ATML-S-A0001248554/ATML-S-A0001248554-1.pdf)上的物理地址寄存器,但我不知道要放多長。 例如,如果我有一個地址爲0xFFFFFCE8的寄存器,其中我可以訪問32位。 我應該在mmap size_t中輸入什麼? 謝謝你的幫助

    0熱度

    2回答

    我有一個問題,使用arm64內聯彙編從一個LKM中加載64位地址到寄存器。 我想在內核內存中設置一個函數鉤子。所以每次調用某個特定的函數時,都應該分支到我的函數中。 我的想法是一個地址加載到寄存器中,這是在使用該運行獲得: unsigned long address = &hooked_do_undefinstr; 然後寫的 BLR X3 相應的操作碼到存儲器中。 我想因爲我有運行時獲得的

    0熱度

    2回答

    我正在做一個實驗,將循環索引寫入CPU寄存器R11,然後用gcc -ffixed-r11編譯它,試圖讓編譯器知道不要使用該reg,最後使用perf來衡量它。 但是,當我檢查報告(使用perf script),大多數記錄條目的R11值不是我所期望的,它應該是數字序列,如1..2..3或1..4 .. 7等,但實際上它只是一些固定值。 (可能受系統調用覆蓋影響?) 我如何讓perf記錄我設置到我的程序

    0熱度

    1回答

    我一直對多路複用器的概念感到困惑。我只是想知道32位n對1多路複用器的結構是什麼。

    -1熱度

    2回答

    爲什麼根據ARM過程調用標準將r12指定爲臨時寄存器?它位於兩組保存寄存器之間:r4-r11和sp-lr-pc。爲什麼不讓r0-r4臨時保存並保存其他所有內容?

    1熱度

    1回答

    我試圖在STM32L4芯片的存儲器閃存中寫入數據。這將在編程上下文中完成,其中我使用C調用ST-Link實用程序命令行。 所以這裏是閃存的一個例子: 0 4 8 C 0x1FFF7000 FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 到目前爲止,我已經能夠只寫32位在64位數據空間: 0 4 8 C 0x1FF

    1熱度

    1回答

    在查看gdb輸出並查看程序集調用時,通常可以使用硬編碼值查找命令以確定寄存器是否從右向左加載或相反亦然。 通常類似以下內容: sub rsp, 16 或 sub 16, rsp 但其他時候,像上面沒有值是可見的。 所有我看到的是這樣的方法調用如下: (gdb) disassemble Dump of assembler code for function main: 0x00000