1. 先判斷系統是否已經安裝了nasm測試
打開終端,執行 whereis nasm ;若是顯示nasm: /usr/bin/nasm ,則已經安裝;若是隻顯示nasm:,則未安裝。spa
以下圖 則是未安裝狀態code
2.下載NASMhtm
點擊這個連接下載blog
3.按照下面步驟安裝nasmip
依次輸入如下命令get
tar xzvf nasm-2.14.02.tar.gz // 解壓nasm編譯器
cd nasm-2.14.02 // 進入目錄string
./configure // {configure腳本會尋找最合適的C編譯器,並生成相應的makefile文件}it
接着輸入 make 建立nasm和ndisasm 的二進制代碼
最後輸入 make install 進行安裝(這一步須要root權限)
make install會將 nasm 和ndisasm 裝進/usr/local/bin 並安裝相應的man pages。
若是想驗證是否安裝成功的話,輸入whereis nasm
這樣就安裝成功了
1. 新建文件,將其命名爲hello.asm,編輯並保存
section .data hello: db 'Hello world!',10 ; 'Hello world!' plus a linefeed character helloLen: equ $-hello ; Length of the 'Hello world!' string ; (I'll explain soon) section .text global _start _start: mov eax,4 ; The system call for write (sys_write) mov ebx,1 ; File descriptor 1 - standard output mov ecx,hello ; Put the offset of hello in ecx mov edx,helloLen ; helloLen is a constant, so we don't need to say ; mov edx,[helloLen] to get it's actual value int 80h ; Call the kernel mov eax,1 ; The system call for exit (sys_exit) mov ebx,0 ; Exit with return code of 0 (no error) int 80h
2. 編譯
nasm -f elf64 hello.asm // elf64是64位機 若是是32位機請使用elf32
3. 連接
ld -s -o hello hello.o
4.運行
./hello
運行結果以下所示:
本人水平有限, 若有問題請在下面評論指出