預先在E:\masm5.0\MYDOC目錄下寫好hello.asm文件:
DATA SEGMENT BUF DB 'HELLO WORLD! THIS IS MY FIRST ASM FILE! $' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA DX,BUF MOV AH,09 INT 21H MOV AH,4CH INT 21H CODE ENDS END START
首先,進入masm5.0所在路徑(裝入-連接-運行-調試均在masm5.0所在目錄中進行)
(我這里masm5.0所在路徑是E:\masm5.0\)
Winkey+R — cmd —e:——cd masm5.0
1、裝入
格式:masm asm源文件及路徑1 obj文件目標路徑2(省去則默認當前路徑)
如:E:\masm5.0>masm .\MYDOC\hello.asm .\MYDOC\
結果:程序無錯則在E:\masm5.0\MYDOC中增加文件HELLO.OBJ
2、連接
格式:link obj文件路徑1
如:E:\masm5.0>LINK .\MYDOC\HELLO.OBJ
(此后當前目錄就會出現HELLO.EXE)
3、運行
格式:exe文件全名(即 "HELLO.EXE")
如:E:\masm5.0> HELLO.EXE
4、調試
-u 反匯編
-r 顯示寄存器內容
-g [=address1][address2][address3] 執行到斷點行,如:-g 12 為執行到第12行
-t [=address][value] 跟蹤,配合-g使用 如:-t 12 1 為從第12行開始,每執行1條指令后停下來
-d 查看數據
-q 退出返回操作系統
上圖中,
首先,-u 反匯編整個 hello.exe ;
然后-g 9 ,讓程序執行到 第9行停下來;再用-t 跟蹤,每執行一條指令停下來;
最后,連續-t跟蹤了3次后輸入-q退出程序。
匯編masm5.0編譯器編譯匯編文件名時,
有時可能出現 Unable to open input file:bcd2ascii.asm 的錯誤,可是代碼文件確實存在。
這時,可以考慮兩個問題,
第一:文件拓展名有沒有改過來,因為win7下會自動隱藏拓展名(除非設置過);
第二:是文件的名字系統的差別造成的,windows現在可以支持非常復雜的命名,
在cmd下也可以看到這些命名,但當執行debug,masm等程序時,系統將啟動ntvdm,
這是一個nt系統下的vdm,虛擬設備管理,就是一個16位的虛擬機,
此時,ntvdm下的cmd嚴格執行8.3命名,這時只需要修改文件名,
主文件名8個字符以內,擴展名為asm就可以了