gas

    1熱度

    1回答

    嘗試使用以下命令編譯32位asm程序。 as --32 select.s -o main.o ld -m elf_i386 -I/lib/ld-linux.so.2 -lc main.o -o main 輸出: In function _start': (.text+0x21): undefined reference to esp' 使用以下的gcc命令: gcc -m32 -nos

    1熱度

    2回答

    爲什麼.equ指令不是氣體以這種方式工作: .equ Mark64, 8(%rsi) ,而它的工作原理在此(注:.text部分,其中Mark32所在,被設定爲R/W在這種情況下): Mark32 EQU DWORD PTR [ESI + 4] 我怎樣才能使氣體Mark64工作(.set也不起作用)? 在此先感謝!

    2熱度

    1回答

    我是彙編語言新手。我最近陷入了一件悲慘的事情。 我創建了一個示例彙編程序如下: head.h #define _Length_ 0x0A main.S movw $_LENGTH_, %ax movw _LENGTH_, %ax 現在就是兩個MOV語句之間的區別? ax的價值是什麼? 我使用Ubuntu和GAS彙編器(AT & T語法)。 在此先感謝

    -2熱度

    3回答

    我最近開始學習從Windows移植到Linux。我一直在翻譯從英特爾語法的程序到AT & T語法也將它從x32轉換爲x64。而且,由於我足夠新的彙編程序,尤其是在移植時遇到了一些麻煩。只需提及:我故意不使用.intel_syntax指令。 所以我就用stucked翻譯這些命令: RTLWriteIntegerBuffer: TIMES 3 DB 0x90,0x8D,0x40,0x00 依次爲:

    2熱度

    1回答

    我在網上搜索了一段時間,還沒有看到任何類似的問題。 因此,我正在編寫一個小型編譯器,將語言編譯爲x64代碼。 但是,當我嘗試做clang generated-code.s,我得到: ld: in section __DATA,__data reloc 0: length < 2 and X86_64_RELOC_UNSIGNED not supported file '/var/folders/3

    0熱度

    1回答

    如何測試這是未設置最低顯著位,如果我給出一個整數N. 我第一次嘗試(氣體語法): #define N %ecx #define return %eax /* prototype: * int leastSigUnsetBit(unsigned int N) */ .text .global leastSigUnsetBit leastSigUnsetBit:

    0熱度

    1回答

    我在crt.S文件中有一些RISC V程序集。 如果我使用的名稱的C函數_init的是這樣的: j _init (即執行一個無條件跳轉到_init),代碼編譯罰款和運行。 但是,如果使用這樣的: li a3, _init (即,負載通用寄存器A3具有整數值_init)的代碼不能編譯。如果我替換一個文字整數值(例如,0x80001958,其他所有內容相同,則當前值爲_init)代碼將進行編譯

    2熱度

    1回答

    我最近通過彙編語言書Richard Blum其中C程序中有一個主題用於彙編轉換。 考慮下面的C程序: #include <stdio.h> int main(){ int a=100; int b=25; if (a>b) printf("The higher value is %d\n", a); else printf("Th

    1熱度

    1回答

    我正在嘗試爲arm組件創建宏(使用GNU工具)。 .macro FUNCTION name, attrs .ifc \attrs\(),"global" .global \name .endif // other stuff .endm 所以宏FUNCTION myFunc, global可以.global屬性進行評估。 但是,marcro不

    1熱度

    1回答

    我在彙編中編寫啓動加載程序,它似乎在qemu,bochs和virtualbox上正常工作。但是,它並沒有在真正的硬件上加載內核(看來)。 引導加載程序通過將字符寫入視頻內存(用於調試)開始,然後從驅動器讀取扇區2並遠程跳轉到內核。內核然後將一些字符寫入視頻內存。 在一臺真機上,我從屏幕上的引導程序看到角色,並在那裏掛起(閃爍的插入符號)。 我試圖將DS,ES,SI設置爲零,而且我還設置了一個堆棧段