ICS2019-Linux彙編實驗指導

ICS2019-Linux彙編實驗指導

一. 首先安裝NASM

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 

 

 

運行結果以下所示:

本人水平有限, 若有問題請在下面評論指出

相關文章
相關標籤/搜索