ia-32

    0熱度

    1回答

    我正在嘗試學習x86語法,並且在一般情況下我有點困惑。我知道堆棧中有幀,並且在進行調用時,該函數中發生的第一件事是某種幀更新,然後獲取參數。所以,如果我在我的主要代碼區域中的寄存器eax中具有某種類型的值5並且調用Function,那麼我仍然可以訪問eax中的值5正確嗎?或者爲了把它作爲一個參數,我必須做這樣的事情。我在別的地方看到你在調用函數之前將你的參數推入堆棧,這是真的嗎?我認爲必須在8(e

    0熱度

    1回答

    什麼是IA-32關鍵字?標籤名稱有哪些限制?目前我正在寫彙編代碼在AT & T語法 - 獎金:我甚至不知道Intel和AT語法之間有什麼區別。 編輯:我主要想知道哪些限制沒有標籤,例如,print是允許的標籤名稱? print: pushl %eax pushl $str call printf # output contents of stack according to out str

    4熱度

    1回答

    我是使用IA-32型處理器的嵌入式軟件工程師。我們正在尋找一個編譯器工具鏈 - 最好是免費的。 我們曾經使用Mentor Graphics CodeBench Lite,但它不再可用。 我們看過其他GCC發行版,但沒有一個具有glibc的裸機實現。沒有,除了newlib,但由於GPL和LGPL授權問題,我們無法使用它。我們是OEM,我們的客戶(和我們)擁有專有代碼。 歡迎任何建議。

    2熱度

    1回答

    IA32到Y86 ATT大會 我有以下的IA32彙編代碼: Bubble: .LFB0: pushl %esi pushl %ebx movl 16(%esp), %esi movl 12(%esp), %edx subl $1, %esi andl %esi, %esi jle .L1 .L7: xorl %ea

    4熱度

    2回答

    我知道我要說的這句話可能是非常快速地在StackOverflow上變得非常不受歡迎的最好方法。無論如何,我會這樣說:爲什麼這不工作(完全)? 我試圖弄清楚lea/leal指令的作用是什麼。按照我的理解,lea/leal找出第一個操作數的內存地址,並將此地址寫入第二個操作數(可能是一個寄存器或其他地址)。 這部分似乎工作。當我運行下面的程序時,它說: The memory address of va

    0熱度

    1回答

    我正在學習MySQL數據庫,我不能理解一個概念。假設在同一個類中有兩個方法,如下所示。現在,我必須使用Connection connect = dbConnection.getDBConnection();每種方法還是有不同的方法來聲明一個連接並在多個方法?: private void setUpdateButton(ActionEvent event) { try{ Con

    1熱度

    1回答

    我試圖在NASM中定義一個常量IDT (Interrupt Descriptor Table)條目,並且要這樣做,我需要將一個雙字的高位字發送到數據表地址,直到鏈接時間才能解決。有沒有辦法做到這一點? 這裏的中斷服務程序: ;;; Interrupt 3 (breakpoint) handler. For now, just poke the screen and halt. ali

    0熱度

    1回答

    這是混亂的來源: MOVL(%EDX),%eax中這對待%eax中的值作爲地址,進入到它並複製其含量%eax中, 牢記這一點然後查看: jmp *(%edx)由於括號之前使用過(在mov指令中作爲解引用),那麼星號是雙引號的形式嗎? ...以及怎麼會變成這樣的指令執行不同? - > JMP(%EDX) ...或者怎麼樣 JMP *%EDX與JMP%EDX?

    0熱度

    1回答

    有什麼方法可以訪問條件標誌的值,比如零標誌,並將該值移入寄存器中?事情是這樣的: cmpl %eax,%edx movl ZF, %eax 感謝, 問候

    1熱度

    2回答

    請看下面有關各種指令集體系結構中的字大小的問題,以及與彙編語言的關係。感謝您的幫助。 首先有一些事實(如果其中任何一個錯誤,請糾正我)。處理器架構的字大小表示(編輯:有些錯了,請參閱下面塞瓦的職位): 每個的最大尺寸寄存器 每個內存地址的最大尺寸(量的存儲器可被解決) 的最大整數CPU可以在單個指令處理 最大的數據的片,可以在單個操作中 被轉移到和從工作存儲器 現在來了一個非常奇怪的事情:在IA-