HLA學習筆記(1)
作者:lostpencil
HLA 介紹
HLA是高級匯編語言(High level assembly)的縮寫,個人感覺這是一門和c語言有著很大的相似性的匯編語言。他在匯編語言的基礎上構建了自己的標準庫,使得軟件的匯編開發(fā)的復雜度大大的減少了,又不影響匯編超級主動的性質。憑我個人短暫的體驗來看,最大的不足就是和64位機器的兼容問題,因為它本質上將HLA代碼轉換成了32位機器的匯編指令,然后通過那些指令操作機器,32位機器和64位機器指令的微小差異,常常弄的很頭疼,有時候需要逐個檢查生成的匯編代碼,修該了才能運行,所以建議,如果不太熟悉這種東西的時候學習的時候還是用32位的機器比較好,可以省去不少麻煩??傊杏X用這門語言作為匯編語言學習的入口,恰到好處
HLA 的安裝
運行HLA需要的相關軟件和相關介紹資料,都可以在http://webster.cs.ucr.edu/AsmTools/HLA/index.html相關的頁面找到下載,順便說出來它是免費的。
Windows下面的HLA安裝比較簡單就不說了,簡單介紹我的 LINUX 環(huán)境下的安裝。(其實上面那個網站上面說的很明白,即便有一些微小差別也可以輕松搞定,如果你熟悉linux環(huán)境的話)
下載就不說了,你需要下載的是hla.tar.gz,文件名會因為版本不同有微小的差別。專家們都說的是放在/usr/hla,就這么放好了。然后cd 到/usr,釋放文件( gzip -d hla.tar.gz,現在可能會有不同,我記不清我當時怎么做的了,這步好象可以省略,因為文件的格式變了)然后tar xvf hla.tar,基本安裝就搞定了 。當然忘了說了你的usr文件對你來說,可能會有一些權限的問題,一般都是在root下做上面操作,然后更改文件權限,使得普通用戶可以訪問,簡單的chmod 777 *就可以,不過要改變整個文件下所有文件的權限,你還需要加上-x參數(參數忘了,自己man chmod吧),接著就是配置相關文件。這時最好用普通用戶,因為該系統(tǒng)文件的時候root是和可怕的東西。切換到/home/你的用戶文件下,ls -a 找到.bashrc文件,在PATH變量定義的地方追加:/usr/hla(安裝hla的路徑),然后追加這樣兩條:
hlalib=/usr/hla/hlalib/hlalib.aexport hlalibhlainc=/usr/hla/includeexport hlainc
后面的路徑都是你的實際路徑
然后在/usr/hla下面建一個tmp文件夾(放代碼的地方)
繼續(xù)在.bashrc文件里面增加:
hlatemp=/tmpexport hlatemp
(以上變量聲明的文件可能和實際系統(tǒng)有所出入,你打開看起來比較像的文件,逐個比較下,看清楚他們的規(guī)則,然后增加在適當的地方才不會出錯,嘗試之前先做個備份)
基本上就好了,你到控制臺輸入,hla回車,會開到相應的hla提示信息了。
經典的開始
來寫個hello word吧
cd 到/usr/hla/tmp 然后用vi寫一個hw.hla文件,在里面增加如下代碼:
program HelloWorld;#include( "stdlib.hhf" )begin HelloWorld;stdout.put( "Hello, World of Assembly Language", nl );end HelloWorld;
保存,然后hla hw.hla,你就會看見標準輸出上有Hello, World of Assembly Language,我實際操作的時候提示n1是未定義的宏,因為也剛學不太久,沒有仔細琢磨,把nl去掉就沒事了,不過也不換行了。這時,你察看你的tmp文件,會多了很多個文件,根據他們的文件類型名很容易知道他們是什么,看看那個紀錄匯編指令的文件吧,哈哈,原來一個簡單的hello world 用到的指令也不少呢。
后記
目前我也剛開始學這個東西,歡迎更多的人加入這個行列,共同指點下,偶基礎比較差,學起來有些困難。不過我會堅持寫完這個筆記的,over!
聯(lián)系客服