爲了理解彙編語言的編輯、彙編、鏈接、運行的全過程,咱們不使用IDE,而是分步驟來進行:編輯器
須要工具:工具
1. 文本編輯器(若是有Notepad++或者UltraEdit就更好了)spa
2. 彙編器(如MASM.exe).net
3. 鏈接器(對應的link.exe)debug
爲了省略盤符轉換,我在電腦的F盤中創建了myASM這個文件夾,並把Windows系統的cmd.exe複製到了該文件夾中,另外,把下載好的MASM.exe和LINK.exe都複製到該文件夾中,在myASM下創建一個文本文件1.txt, 改其名爲1.asm, 在1.asm中輸入以下程序並保存code
點擊cmd.exe, 而後輸入masm, 按enter, 進入了masm的界面,而後按下圖輸入(有時須要按enter鍵):blog
在myASM文件夾下生成了1.obj文件盒1.exe文件(注意:因爲該程序只有代碼段,沒有棧段,故有no stack segment這個提示)。ip
雙擊1.exe文件後,黑色的框框一閃而過,這是很正常的。用cmd.exe來運行1.exe, 也沒有發現什麼結果,由於該程序並無輸出操做,因此天然也就沒有輸出結果了。那要怎麼樣看結果呢?用debug嘛!步驟以下:內存
有兩點值得注意:get
1. u命令表示將內存中的機器指令轉爲彙編指令(至於g命令的做用,前面已經說過了)
2. 要輸入debug 1.exe. 若是輸入debug 1, 則會出錯
3. 在沒有學會輸出操做以前,以上方法是查看結果的好方法
下面,咱們來對上述程序進行解釋:
1.
segment和ends(不是end)是一對僞指令,用來定義一個「段」,具體是什麼「段」由僞指令assume來指定。好比assume cs : xxx 指定的是代碼段(code segment)
2. end僞指令是一個彙編語言結束的標記,碰到end, 則中止彙編
3.
這兩條語句的功能是程序返回
4.
這三條語句是「段」的主體(代碼段的主體)