sudo lsb_release -r
看到操作系統的版本是22.04
,sudo uname -r
可以看到內核版本是5.15.0-86-generic
,sudo gcc --version
可以看到版本是11.2.0
,sudo make --version
可以看到版本是GNU Make 4.3
。
下載yasm
http://yasm.tortall.net/Download.html是yasm官網,https://github.com/yasm/yasm/是yasm的git倉庫。
sudo wget -c http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
下載yasm
源碼。
sudo tar -xf yasm-1.3.0.tar.gz
解壓yasm源碼。
cd yasm-1.3.0
進入源碼目錄。
編譯并安裝
sudo ./configure
進行配置
完成之后如下:
sudo make
進行編譯。
完成如下:
sudo make install
安裝。
yasm --version
可以看到輸出的內容如下:
yasm 1.3.0
Compiled on Nov 9 2023.
Copyright (c) 2001-2014 Peter Johnson and other Yasm developers.
Run yasm --license for licensing overview and summary.
代碼測試
代碼如下:
section .datastringToShow db "Hello",10,0
section .bss
section .textglobal _start_start:mov rax,1mov rdi,1mov rsi,stringToShowmov rdx,6syscallmov rax,60mov rdi,0syscall
上邊的代碼使用編輯器保存成helloInYasm.asm
,sudo yasm -felf64 -g dwarf2 helloInYasm.asm -o helloInYasm.o
進行匯編,sudo ld helloInYasm.o -o helloInYasm
進行鏈接,sudo ./helloInYasm
執行輸出Hello
。