#linux下彙編學習
在ubuntu下用學習組合語言程式設計,在使用ld鏈結時有碰到ld: i386 architecture of input file `eatsyscall.o』 is incompatible with i386:x86-64 output的問題。
很明顯,root cause 是我編譯好的檔案(eatsyscall.o)是遵循i386 architecture, 而我使用的計算機卻是i386:x86-64架構,即在64位機器上編譯32位**。
我安裝的ubuntu version是14.04,此版本下預安裝的ld(鏈結工具)顯示:
supported emulations: elf_x86_64 elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om i386pep i386pe
我之前寫的命令列是:ld -o eatsyscall eatsyscall.o
報錯後我改了一下:ld -m elf_i386 -o eatsyscall eatsyscall.o
然後就可以了。
Linux下彙編學習 1
教材 programming from the ground up.pdf 直接看 purpose program that exits and returns a status code back to the linux kernel input none output returns a st...
Linux下彙編學習 4
purpose this program will compute the value of 2 3 5 2 section data section text globl start start pushl 3 pushl 2 call power addl 8,esp pushl eax pus...
Linux下彙編學習 1
教材 programming from the ground up 第乙個程式 section data section text globl start start movl 1,eax movl 0,ebx int 0x80 我們給這個名字取名為exit.s,這個程式什麼也沒有做,只是呼叫了li...