隨着計算機組成原理課程的學習,我對彙編也有了初步的認識,接下來就簡單看幾個彙編程序吧。
由於edit/debug等命令只適應32位機器,但筆者是64位的win7系統,於是得先下載一個DOSBox,能模擬DOS環境。
1.下載DOSBox,百度即可
2.打開之後,會有兩個窗口,先輸入命令
mount e e:\DOSBox
表示將你的驅動盤模擬到E盤,e:\dosbox表示你的文件目錄
3.e:
表示將根目錄換到E盤
4.masm ex.asm
編譯你的.asm文件,期間一直回車即可
5.link ex.obj
連接你的.obj文件,期間一直回車即可
6.debug ex.exe
接下來就可以使用DOS命令來調試程序了
(這些命令分別需要masm.exe,link.exe,debug.exe文件)
一、順序結構
內存中自TABLE開始的七個單元中連續存放着自然數0~6的立方值(立方值表),任一個數X(0≤X≤6)在FIRST單元中,要求查表找出X的立方值,存SECOND單元。
效果:
命令:-u:反彙編 -t:單步執行 -d ds:0:查看數據段數據,從0000開始 -g 0014:執行到0014,圖中語句爲MOV AH,4C
執行結果的數據顯示:(TABLE)00 01 08 1B 40 7D D8 (FIRST)05 (SECOND)7D
表示05的立方值爲7D,而這個7D則是從TABLE中查找出來的。
這段程序中,TABLE的定義是DB,表示字節,若要用DW(字)定義呢?
需要多一步SAL AL,1
表示將AL的內容左移一位,相當於乘2,而彙編中的移位操作要比加法、乘法的速度快很多,效率也大很多。
讀者可以發現TABLE的存儲方式發生了變化,但FIRST和SECOND的內容還是05和7D