彙編語言的集成編譯環境RadSAM的安裝及使用(轉載)

聲明:這篇文章轉自我的一個學長,由於講解十分清晰,因此收藏。原出處:www.reyoung.me


這篇日誌介紹瞭如何在Windows下使用RadASM進行彙編開發,並配置Irvine的庫。分爲如下幾個步驟:* 安裝彙編語言的集成開發環境RadASM* 下載Irvine的開發庫* 新建項目,配置Irvine庫* 運行Hello World

安裝彙編語言的集成開發環境RadASM

RadASM可以從這裏下載。下載完成後,是一個安裝包,安裝過程沒有什麼注意事項,正常的安裝程序就可以了。(也許會報病毒,我用Avast檢測報毒。

安裝完畢後,可以找到程序RadASM

下載Irvine的開發庫

可以在Kip Irvine的官方網站下載它書籍的配套資料。大家可以下載vs2012的example就可以了。(八卦一下,下面那個Curtis Wong的Linux版本的Irvine32庫,是天津大學咱的大學長黃耀龍寫的。^V^)

下載完了是一個zip包。解壓縮完畢了後,提取出Irvine32.inc, Irvine32.lib, Kernel32.lib, SmallWin.inc, User32.lib, VirtualKey.inc到某一個目錄中

新建項目,配置Irvine庫

打開RadASM,選擇文件,新建工程。選擇Console,填寫完名稱,一路下一步。

到目錄的文件夾內,把剛纔解壓出來的那些文件,拷到項目的根目錄。

輸入課本中的示例程序:

  1. TITLE Add and Subtract (AddSub.asm)
  2. ; This program adds and subtracts 32-bit integers.
  3. INCLUDE Irvine32.inc
  4. .code
  5. main PROC
  6. mov eax,10000h ; EAX = 10000h
  7. add eax,40000h ; EAX = 50000h
  8. sub eax,20000h ; EAX = 30000h
  9. call DumpRegs
  10. exit
  11. main ENDP
  12. END main

點擊菜單構建–構建並運行(Ctrl+Shift+F5),會報錯

  1. Test.obj : error LNK2001: unresolved external symbol _ExitProcess@4
  2. Test.obj : error LNK2001: unresolved external symbol _DumpRegs@0
  3. Test.exe : fatal error LNK1120: 2 unresolved externals

報的錯是Link Error,也就是Irvine32.lib沒找到。那麼在源代碼加入如下幾行即可

  1. INCLUDELIB Irvine32.lib
  2. INCLUDELIB user32.lib
  3. INCLUDELIB kernel32.lib

現在所有的程序爲: TITLE Add and Subtract (AddSub.asm)

  1. ; This program adds and subtracts 32-bit integers.
  2. INCLUDE Irvine32.inc
  3. INCLUDELIB Irvine32.lib
  4. INCLUDELIB user32.lib
  5. INCLUDELIB kernel32.lib
  6. .code
  7. main PROC
  8. mov eax,10000h ; EAX = 10000h
  9. add eax,40000h ; EAX = 50000h
  10. sub eax,20000h ; EAX = 30000h
  11. call DumpRegs
  12. exit
  13. main ENDP
  14. END main

運行結果爲:

  1. EAX=00030000 EBX=7FFDE000 ECX=00000000 EDX=00401000
  2. ESI=00000000 EDI=00000000 EBP=0018FF90 ESP=0018FF88
  3. EIP=00401014 EFL=00000206 CF=0 SF=0 ZF=0 OF=0 AF=0 PF=1
  4. Press Enter key to continue...
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章