x86

    26熱度

    1回答

    你將不得不原諒我,我是x86組裝的新手,並且一般都是組裝。 所以我的問題是,我有類似: addl %edx,(%eax) %EAX是一種具有指向某個整數寄存器。我們稱之爲xp 這是否意味着它說:*xp = *xp + %edx? (%edx是一個整數) 我只是困惑在哪裏addl將存儲結果。如果%eax是一個指向int的指針,那麼(%eax)應該是該int的實際值。那麼addl將%edx+(%e

    10熱度

    1回答

    在x86上的實模式下,需要使用哪些指令來在多處理器系統中的不同處理器上運行代碼? (我正在寫彙編一些預引導代碼,需要設置一定的CPU寄存器,併爲此在系統中每個CPU上,實際的操作系統啓動前)。

    0熱度

    3回答

    如果不使用全部四個通用寄存器,是否真的沒有辦法在程序集中將ascii字符串打印到標準輸出?

    28熱度

    4回答

    是否有一組命令行選項可以說服gcc從自包含的源文件生成平面二進制文件?例如,假設foo.c的內容是 static int f(int x) { int y = x*x; return y+2; } 沒有外部引用,沒有任何內容導出到鏈接器。我想用這個功能的機器說明獲得一個小文件,而不需要任何其他裝飾。有點像(DOS).COM文件,除了32位保護模式。

    13熱度

    5回答

    我正在通過一些16位實模式的示例彙編代碼。 我遇到的臺詞: mov bx, cs mov ds, bx mov si, OFFSET value1 pop es mov di, OFFSET value2 這是什麼做的? 「OFFSET」在那裏做什麼? 對不起,如果它是一個非常基本的問題,我是新來的。

    2熱度

    2回答

    我想知道x86處理器遇到存儲條件指令時會做什麼。例如,它是否會拖延流水線的前端並等待ROB緩衝區變空,然後停止前端並執行SC?基本上,它迫使處理器成爲非投機性的...... 感謝

    2熱度

    4回答

    我需要將該方法中評論的內容翻譯成彙編程序。我有一個大致的想法,但不能。 任何人都可以幫助我嗎?是英特爾X32架構: int secuencia (int n, EXPRESION * * o) { int a, i; //--- Translate from here ... for (i = 0; i < n; i++){ a = evaluarExpresi

    6熱度

    2回答

    我試着翻譯從& T彙編以下英特爾組件: pushl 2000 現在這個編譯爲: ff 35 d0 07 00 00 pushl 0x7d0 但無論我怎麼努力,我不能讓英特爾synax一樣,我已經試過: intel asm disassembly after compiling to at&t push 2000 68 d0 07 00 00 push $0x7d0 pus

    0熱度

    2回答

    我有一個用32位編寫的操作系統Shell,它取代了Vista機器的Explorer.exe。 我運行一個實用程序,它也是用32位編寫的,它允許在資源管理器shell和我的shell之間切換。對於一些基於64位的機器,我不能修改HKLM \ Microsoft \ current \ shell Key(簡稱reg key)。我最終被WOW64子項重定向攔截。並且實際上不會發生對shell密鑰的更改

    0熱度

    3回答

    我在x86程序集上關注this tutorial。到目前爲止,每個示例都使用作者稱之爲「C驅動程序」的程序,並使用程序集模塊進行編譯,以獲得某些「初始化」。例如: int main(void) { int ret = asm_main(); return ret; } 然後使用C調用約定正常寫入asm_main函數。我想知道C編譯器生成的所需初始化究竟是什麼,以及是否可以