Linux 下彙編學習

2021-07-29 23:53:38 字數 538 閱讀 5987

#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...