cpu-registers

    2熱度

    1回答

    gdb的$ pc寄存器與x86 32位處理器中的eip寄存器不同嗎? gdb中有四個標準寄存器可用,如$ pc。所以如果它是不同名稱的相同寄存器,那麼映射是如何完成的?

    0熱度

    1回答

    我很難理解x86程序集中的寄存器,我知道EAX是完整的32位,AX是低16位,然後AH和AL是AX的高位和低位8位,但我正在做題。 如果AL = 10和AH = 10 AX的值是多少?我的想法是將10轉換爲二進制(1010),然後將其作爲AX的高位和低位(0000 1010 0000 1010),然後將其轉換爲十進制(2570)正確的答案在這裏,還是離開?

    0熱度

    1回答

    我想存入兩個16位register.For例如無符號長值,如果我有長期價值(-2,147,483,648 to 2,147,483,647)然後我用公式,如: v[0] = myValue % 65536 v[1] = myValue/65536 要獲得價值註冊 outVal = reg0 + (reg1 * 65536) 但如何爲無符號長,其取值範圍在0 to 4,294,967,29

    1熱度

    2回答

    看着這個事實,我開始想知道寄存器如何在GPU中工作?在知道這個之前,我認爲越來越高於分層內存梯形圖,大小不斷下降(這是直觀的(延遲減少,尺寸減小))。 GPU中寄存器的用途是什麼?爲什麼它們的尺寸大於L2/L1緩存? 謝謝。

    2熱度

    1回答

    我正在學習逆向工程的基礎。雖然倒車的crackme它發生在我身上看到這種模式在幾乎每一個函數的開頭:在 0x08048766 pushl %ebp movl %esp, %ebp pushl %ebx # because ebx is a callee-saved register subl $0x14,%esp # of course $0x14 changes

    6熱度

    2回答

    我試圖在程序集中製作一個子程序,它將在屏幕上繪製一個正方形。我不認爲我可以像在C++中那樣將參數傳遞給子程序,所以我認爲我可以使用堆棧來存儲和訪問參數(我不能使用公共數據寄存器,因爲變量太多通過)。 問題是(我記得在某處讀到),當我使用call命令將當前「程序」的地址保存在堆棧中時,這樣當它使用「ret」命令時,它會知道在哪裏回來。但是,如果我在堆棧中存儲了一些東西,然後調用該函數,我將不得不在地

    0熱度

    2回答

    我有16位寄存器,它包含在LSB和MSB一些值: LSB: 在位0 ... 1個的值是0 在比特2個的值是0 MBS: 在MSB我需要寫值20 所以應該在寄存器寫入的值是0 + 0 + 20 = 160 當我在讀註冊我做它是這樣的: 對位的第1個值[0 ... 1]: firstVal = (valFromReg & (((1 << 2)-1) << 1)/2) secondVal = (val

    2熱度

    1回答

    如何在現代ARMv7 32位上將一系列浮點寄存器推送(然後彈出)到堆棧上?特別地,我有興趣保存並恢復暫存(易失性)浮點寄存器d0-d7(或s0-s15,假設它們佔用處理器中的相同空間)。 我看到這個方法http://www.cl.cam.ac.uk/~fms27/teaching/2001-02/arm-project/02-sort/apcs.txt與SFM和LFM,但它似乎只適用於很老的ARM

    1熱度

    1回答

    執行以下行後,EAX中的值是什麼? mov eax, 1002FFFFh inc ax 答案是1002000h。 我的問題是,爲什麼答案不是1003 0000h或1002 0000h考慮到我們最初是從32位開始,答案是32-4位。

    2熱度

    1回答

    我在Raspberry Pi上進行性能測量,並希望獲得更高的分辨率,然後只是clock_gettime()。 因此,我需要啓用CPU寄存器PMUSERENR。 根據我的Raspberry Pi上的/ proc/cpuinfo,我有一個「ARMv7處理器rev 5(v7l)」。所以,我下載的架構參考手冊,發現我必須使用: CRn的= C9,OPC1 = 0,CRM = C14,OPC2 = 0 as