x86-64

    3熱度

    1回答

    一個簡單的問題:在非高速緩存的內存上是否可能存在LOCK CMPXCHG,即在頁表中標記爲非高速緩存的頁面?

    2熱度

    3回答

    我想在64位Debian Jessie上安裝32位Wine。我試着從建議: Can't build 32bit Wine on 64bit linux 和: Installing wine in debian ,但所有的時間我: apt-get install libcapi20-dev:i386 libcups2:i386 libdbus-1-3:i386 libfontconfig:i386

    0熱度

    1回答

    我寫了一個彙編程序(x86_64的Linux的NASM)讀取用戶輸入打印整數安慰,總部設在算法提出我的意見在這個post,這基本上是這樣的: divide number x by 10, giving quotient q and remainder r emit r if q is not zero, set x = q and repeat 所有下面的腳本下工作得很好: section

    1熱度

    1回答

    在分析Metasploit的linux/x64/shell/reverse_tcp負載時,我意識到它使用值0x1007作爲mmap()系統調用的prot參數。 mmap()手冊頁說,prot參數是PROT_NONE或一個或多個以下標誌的按位或:PROT_EXEC,PROT_READ,PROT_WRITE PROT_NONE。根據/usr/include/x86_64-linux-gnu/bits/

    1熱度

    2回答

    我想編寫一個程序,在工作方式如下: 用戶->鴻溝獲取多個輸入它,比方說,2 ->打印結果(商)。 divide-by-the-number-2部分似乎沒有太大的困難,所以我初步編寫了一個程序,它獲取用戶輸入的整數並打印該整數。 這意味着我試圖編寫一個程序,將用戶的字符串整數轉換爲實數整數,然後將其轉換回字符串並打印出來。 但編譯後,我最終在一個無限循環(擊中Enter後沒有任何反應)。 予編譯使用

    0熱度

    1回答

    英特爾手冊(第2卷第2.2.1.6)地址大小覆蓋說: 使用該地址大小前綴不會禁用RIP相對 尋址。地址大小前綴的作用是截斷並將計算出的有效地址零擴展爲32位。 CALL rel32介紹說: 呼叫附近,相對的,相對於下一條指令位移。 32位 位移符號擴展到64位在64位模式下 因此,rel32是即時的,而不是地址,操作數大小的前綴覆蓋的默認值。 但是,如果使用地址大小覆蓋前綴near call(或j

    3熱度

    1回答

    32位寄存器名稱以E開頭,64位以R開頭。E和R代表什麼意思?有沒有選擇這些字母的理由?另外,在64位寄存器中,我們也可以在任何低級別調試器(例如Windbg)中看到最右邊的位仍被稱爲與64位寄存器相同的名稱,除了名稱以E開頭。例如64位系統中RAX寄存器的最右側32位稱爲EAX。 那麼,E和R代表什麼?還有,爲什麼後綴X用於註冊?

    1熱度

    1回答

    我想了解由編譯器完成的x64程序集優化。 我編譯了一個小的C++項目,編號爲Release,在Windows 8.1上使用Visual Studio 2008 SP1 IDE編譯。 而行的一個包含下面的彙編代碼: B8 31 00 00 00 mov eax,31h 0F 1F 44 00 00 nop dword ptr [rax+rax] 這裏是截圖: 據我所知nop本身是do

    1熱度

    1回答

    我一直在閱讀本節的一段時間,但似乎無法弄清楚。我在AMD64 ABI草案0.99.6,第18頁,部分3.32 Parameter Passing和以下文本: __m256類型的參數被拆分爲四個八字節塊。最不重要的屬於SSE類,所有其他屬於SSEUP類。 我很困惑,因爲它聽起來像我使用三個SSEUP寄存器和只有一個SSE,但似乎浪費了與SSEUP相關的其他兩個SSE寄存器。我誤讀了嗎?我可能甚至不會

    0熱度

    1回答

    我正在使用x86_64 Linux Assembly,我被要求將一個字符的三個低位(來自用戶輸入)設置爲1,然後打印出結果字符。爲了說明 Input: b ; ASCII in binary: 01100010 Set the last 3 bits to 1: 01100010 -> 01100111 Output: g ; ASCII in binary: 01100111