相關開發工具
【版權聲明:尊重原創,轉載請保留出處:blog.csdn.net/shallnet,文章僅供學習交流,請勿用於商業用途】 類似於其它高級語言,編寫彙編語言,必須有一個開發環境,那麼也就需要適當的工具了。搭建彙編語言至少應該有下面這些工具:彙編器、鏈接器、調試器。下下面看看在彙編語言開發環境中如何使用它們。
彙編器
- 彙編器用於把彙編語言源代碼轉換為處理器指令碼。選擇的彙編器必須能夠生成所在系統的處理器系列指令碼。彙編語言源代碼程序有3個部分:操作碼助記符、數據段、命令。但是每種彙編器對於每個部分使用的格式是不同的,所以使用一種彙編器進行程序設計可能和使用另一種彙編器完全不同,彙編器之間最大的區別是彙編命令,一般選擇可以簡單地為目標環境創建指令碼的彙編器。Intel IA-32平臺上一些常見的彙編器有MASM、NASM、GAS(GNU彙編器)、HLA。
鏈接器
- 彙編器不像高級語言那樣編譯、鏈接一氣呵成,需要一個手工操作把彙編目標代碼和其它庫連接在一起。
- 調試器
- 調試器必須瞭解硬件平臺的指令碼集合,並且瞭解操作系統處理寄存器和內存的方法。
GNU彙編器時(gas)unix環境下最流行的彙編器,它可以為幾種不同硬件平臺彙編指令碼的能力。本系列文章所有彙編範例都針對gas編寫。
大多數linux發行版已經包含了gas彙編器,其和其它開發軟件一起包含在GNU binutils包中。如下為筆者系統相關信息和查找到已安裝的binutils包。
$ uname -a
Linux localhost.localdomain 2.6.32-358.el6.i686 #1 SMP Thu Feb 21 21:50:49 UTC 2013 i686 i686 i386 GNU/Linux
$ rpm -qa | grep binutils
binutils-2.20.51.0.2-5.36.el6.i686
binutils-devel-2.20.51.0.2-5.36.el6.i686
GUN彙編器時面向命令行的程序,所以運行時應該使用正確的命令行參數。其命令行可執行程序是“as”命令。其用法在命令行上查看其幫助即可。GNU鏈接器為命令“ld”,用於把目標代碼文件鏈接為可執行文件或者庫文件。 把一個彙編語言程序編譯鏈接成可執行文件大致如下:
as -o test.o test.s
ld -o test test.o
GNU objdump 程序是binutils包中另一個對程序員非常有用的工具。程序員可以使用該命令查看目標文件中由編譯器生成的指令碼,他不僅能夠顯示彙編代碼,而且能夠顯示生成的你是指令碼。
在本系列文章中,我們使用linux環境進行開發,所以使用的工具很自然就是使用GNU的工具了,並且其是免費的。