gas

    13熱度

    3回答

    我正在使用基於ARM Cortex-M3的微控制器(Thumb 2指令集)的彙編程序,使用GNU as。 在一些示例代碼中,我發現像.size,.section和.type這樣的指令,我知道這些指令是ELF指令。作爲一個例子: .section .text.Reset_Handler .weak Reset_Handler .type Reset_Handler, %fun

    2熱度

    2回答

    我想得到一個變量的地址並由4096(它對應於它的內存頁面的地址)來代替。由於這一點是可以離線我做了一件看起來像這樣(v是可變的,v第應當包含其頁面的地址)來計算: .data v: .zero 0x100 vpage: .long v & 0xfffff000 試圖編譯與x86彙編結果在這個文件出現以下錯誤: test.S: Assembler messages: te

    2熱度

    2回答

    這是原來的代碼進行編譯: #define CPU_PREFETCH(cache_line) \ { int* address = (int*) (cache_line); \ _asm mov edx, address \ _asm prefetcht0[edx] \ } #define CPU_GET_CYCLES(low) \ {

    4熱度

    2回答

    我一直在瀏覽這裏和互聯網上的問題一段時間了,我似乎無法找出是否有可能在內聯使用GCC以外的東西組裝GCC。我試圖找出是否可以避免使用GAS的AT & T語法(儘管我知道如何在GAS中使用英特爾語法)但擴展的asm格式。雖然這不是一個項目或任何非我自己的好奇心,但我真的很感激我能得到的任何幫助(這實際上是我的第一個問題,因爲我找不到有關它的答案)!另外,如果這有什麼不同,我目前在Windows上使用

    1熱度

    1回答

    我必須在程序集中創建一個程序,將用戶輸入作爲最大數組大小,然後讓用戶創建一個具有該大小的數組。 我應該緩衝該值到最多1000個數組項目(所有整數) 然後,我必須在陣列和輸出上運行選擇排序。 我在IBM網站上發現了以下選擇排序。 .section .data array: .byte 89, 10, 67, 1, 4, 27, 12, 34, 86, 3 arra

    0熱度

    1回答

    char greet[] = "hello mate"; __asm__("\n\ movl foo, %eax\n\ "); 如何將greet[0]移動到%eax等註冊表中? 我的猜測: char greet[] = "hello mate"; __asm__("\n\ movl $_greet, %ebx\n\ movl (%ebx), %eax\n\ "); 但是,

    1熱度

    1回答

    我不確定如何解釋ASM執行流程。到目前爲止,我看過的所有文件都有明確的跳轉(Intel x86 AT & T語法,即jmp或jl)到ASM文件中的標籤。 我的問題:當你到達標籤的末尾而沒有顯式跳轉到其他標籤時會發生什麼。執行是否繼續進入下一個標籤? 實施例: foo: opcodes ... nextLablel: moreopcodes ...

    0熱度

    1回答

    期間如何傳遞參數給預處理我想通過在Makefile中定義在下面的代碼預處理器像「_DBGR_ON_」,這樣的代碼將被相應組裝某些宏。這個選項在DIAB編譯器(爲PowerPC C交叉編譯器)通過在生成文件與-D_DBGR_ON_限定它幷包括它作爲彙編標誌工作。 但如何將其包含在GCC中。 當我做同樣的(ASFLAGS = -mregnames -D_DBGR_ON_。),我是越來越錯誤:無法識別選

    8熱度

    4回答

    我使用的是Ubuntu,我正在尋找一個適用於Linux的彙編編譯器,我打開了GAS。我試圖安裝並運行它,但是我不能。有人能幫我嗎?像一個教程如何做到這一點?謝謝。

    2熱度

    2回答

    所有內容都在標題中。 由於某些原因,我必須這樣做。 但是當我編譯我的代碼,海灣合作委員會(或氣體也許...)顯示以下錯誤: ... /溫度/ cc1C1fjs.s:19:錯誤:立即數與非法絕對跳轉 代碼: int main (int argc, char **argv) { /* Some code */ ((void(*)()) &&label)(); /*