masm6編譯
1. 匯編語言MASM6.X三題編程
運行時在屏幕右上角顯示時間,按任意鍵退出。
(不要問我任意鍵是哪個鍵哦^_^)
data segment
str db ' : : $'
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
test:
mov ah,1
int 16h
jnz exit
mov ah,2
int 1ah
mov al,cl
mov ah,al
mov cl,4
shr ah,cl
or ah,30h
mov str+3,ah
and al,0fh
or al,30h
mov str+4,al
mov ah,ch
shr ah,cl
or ah,30h
mov str,ah
and ch,0fh
or ch,30h
mov str+1,ch
mov ah,dh
shr ah,cl
or ah,30h
mov str+6,ah
and dh,0fh
or dh,30h
mov str+7,dh
mov dh,0
mov dl,72
mov ah,2
int 10h
lea dx,str
mov ah,9
int 21h
jmp test
exit:
mov ah,4ch
int 21h
code ends
end start
2. masm 6.15怎麼用剛學匯編,求回答。
就你的操作,接下來幾步應該可以幫你實現你需要的效果。
1.啟動你子創建的CMD窗體(即你重新命名為masm615的快捷方式)
2.在啟動後彈出的黑色DOS命令提示符下輸入"masm 文件名.asm"(文件名為你創建的asm文件前綴名稱,另外要注意的是如果你的asm文件編譯時需要的其他資源文件需要和該文件存放在同一路徑)
3.當你執行完第2步後會有一個"文件名.obj「文件被創建,存放於你安裝Masm 6.15的文件夾下
4.繼續在命令提示符下輸入」link 文件名.obj「然後會提示信息,如果沒有特殊需求可以點擊回車鍵忽略
5.第4步完成後會有一個」文件名.exe「文件被創建,存放於你安裝Masm 6.15的文件夾下
註:
如果你的asm文件沒有錯誤,那麼該exe文件可以直接運行,反之則可能根本就不會被創建;另外值得提醒的是有部分程序順利執行完成後將直接退出(比如網上流傳的」Hello word「程序),此時你可以右鍵點擊該exe文件,在彈出的屬性窗體上選擇」程序「選項卡,可以找到一個」退出時關閉「的復選框,去掉前面的勾選。如上步驟本人完成了一次完整的操作,具體點的參數可到我空間看一篇名叫《匯編程序masm.exe及link.exe的參數》文章,祝君好運。
3. 為什麼用masm編譯源程序文件老是出現Unable to open input file
unabletoopeninputfile這個錯誤,是匯編時找不到源文件。執行MASM匯編命令(或ML)時,需要指定你的.asm的源程序文件。這個文件,若在你執行命令的當前目錄中,可以不加路徑。若文件不在當前目錄里,必須要加上源文件的路徑。當然,若你打錯了文件名,也會找不到文件,出現這個提示。==================對問題補充的回復:在DOSBOX中,只有mount過的盤符才存在。也就是說,你的DOSBOX里,只有C:盤,不存在D:盤。你指定D:\.這樣的文件,是找不到的。如果在windows里,你的源程序是D:\Myassembly\tt\aa.ASM,那麼,在你的DOSBOX里,文件應當使用C:\tt\aa.ASM來訪問。
4. 怎樣用masm6.0
匯編沒有專門的調試平台。所以不像高級語言那麼容易上手。 你可以看看這個軟體,也許能滿足你的要求。http://www.ote.com/soft/3539.html 下面是編譯鏈接選項(ML的幫助信息):/AT Enable tiny model (.COM file) /omf generate OMF format object file
/Bl<linker> Use alternate linker /Sa Maximize source listing
/c Assemble without linking /Sc Generate timings in listing
/Cp Preserve case of user identifiers /Sf Generate first pass listing
/Cu Map all identifiers to upper case /Sl<width> Set line width
/Cx Preserve case in publics, externs /Sn Suppress symbol-table listing
/coff generate COFF format object file /Sp<length> Set page length
/D<name>[=text] Define text macro /Ss<string> Set subtitle
/EP Output preprocessed listing to stdout /St<string> Set title
/F <hex> Set stack size (bytes) /Sx List false conditionals
/Fe<file> Name executable /Ta<file> Assemble non-.ASM file
/Fl[file] Generate listing /w Same as /W0 /WX
/Fm[file] Generate map /WX Treat warnings as errors
/Fo<file> Name object file /W<number> Set warning level
/FPi Generate 80x87 emulator encoding /X Ignore INCLUDE environment path
/Fr[file] Generate limited browser info /Zd Add line number debug info
/FR[file] Generate full browser info /Zf Make all symbols public
/G<c|d|z> Use Pascal, C, or Stdcall calls /Zi Add symbolic debug info
/H<number> Set max external name length /Zm Enable MASM 5.10 compatibility
/I<name> Add include path /Zp[n] Set structure alignment
/link <linker options and libraries> /Zs Perform syntax check only
/nologo Suppress right message
5. 匯編語言編譯器的MASM編譯器介紹
MASM是Microsoft公司推出的匯編編譯器。它的版本從低到高經過了很多次的升級(微軟的通病,升級補丁多如牛毛)。每次升級除了例行的錯誤修正外都增加了一些新的功能,以至於到最後高版本和低版本的語法和功能相差很多,向下兼容性也不好。低版本的MASM固然無法編譯高版本的源程序,但高版本的MASM也可能無法正常編譯低版本的源程序,如MASM 4.0寫的源程序常常無法在MASM 6.x上編譯成功。在使用MASM系列編譯器時,如果不先搞清楚特定的語法和編譯選項可以在哪個版本上用,編譯中就會錯誤連篇。所以在這里有必要了解一下MASM各版本的演變過程
下表列出了不同版本MASM編譯器的區別。
版 本
簡 介
MASM 4.00
這是最先廣泛使用的一個MASM版本,適用於DOS下的匯編編程。它很精巧,但使用起來不是很智能化,需要用戶自己一板一眼地寫出所有的東西。很多教科書上講的8086匯編語法都是針對這個版本的,對程序員來說。它只比用Debug方便一點點。
MASM 5.00
MASM 5.00比4.00在速度上快了很多,並將段定義的偽指令簡化為類似 .code與.data之類的定義方式,同時增加了對80386處理器指令的支持,對4.00版本的兼容性很好
MASM 5.10
對程序員來說,這個版本最大的進步是增加了對@@標號的支持。這樣,程序員可以不再為標號的起名花掉很多時間。另外,MASM 5.10增加了對OS/2 1.x的支持
MASM 5.10B
1989年推出,比上一個版本更穩定、更快,它是傳統的DOS匯編編譯器中最完善的版本
MASM 6.00
1992年發布,有了很多的改進。編譯器可以使用擴展內存,這樣可以編譯更大的文件,可執行文件名相應從Masm.exe改為Ml.exe。從這個版本開始可以在命令行上用*.asm同時編譯多個源文件,源程序中數據結構的使用和命令行參數的語法也更像C的風格。最大的改進之一是開始支持 .if/.endif這樣的高級語法,這樣,使用復雜的條件分支時和用高級語言書寫一樣簡單,可以做到幾千行的代碼中不定義一個標號;另外增加了invoke偽指令來簡化帶參數的子程序調用。這兩個改進使匯編代碼的風格越來越像C,可讀性和可維護性提高了很多
MASM6.00A
未發售的版本
MASM 6.00B
最後一個支持OS/2的MASM版本,修正了上一版本中的一些錯誤
MASM 6.10
修正了一些錯誤,同時增加了/Sc選項,可以在產生的list文件中列出每條指令使用的時鍾周期數
MASM6.10A
1992年發布,修正了一些內存管理方面的問題
MASM 6.11
1993年11月發布,支持Windows NT,可以編寫Win32程序,同時支持Pentium指令,但不支持MMX指令集
MASM6.11C
1994年發布,增加了對Windows 95 VxD的支持
MASM 6.12
1997年8月發布,增加 .686,.686P,.MMX聲明和對相應指令的支持
MASM 6.13
1997年12月發布,增加了 .K3D聲明,開始支持AMD處理器的3D指令
MASM 6.14
這是一個很完善的版本,它在 .XMM中增加了對Pentium III的SIMD指令集的支持,相應增加了OWORD(16位元組)的變數類型
MASM 6.15
6. masm6.11 怎樣編譯出com文件
程序中用簡化段定義偽指令
.TINY
這種模型會生成.com,程序不能超過64K
主程序為NEAR型,因為只有一個64K的段
這個版本用的不多,具體不大清楚,書上說要注意大小寫,AT是大寫.
7. 怎麼編譯連接16位的匯編程序
如果是寫16位匯編,下載masm5.0(微軟的16位宏匯編包),網路一下就有下載!使用masm.exe編譯16位匯編源代碼生成*.obj文件,在用link.exe連接生成16位可執行文件*.exe。在32位機器上是可以寫16位程序的,因為x86的計算機體系就是為了兼容低階程序而存在的,計算機在啟動的時候就是以實模式(可以簡單理解為16位的)啟動的,之後操作系統才使用機器指令轉向32位保護模式(因為這樣從硬體級支持多任務)。編寫16位、32位、以及64位匯編程序只要下載安裝相應的匯編包就可以了。
8. 用masm編譯匯編程序怎麼產生OBJ文件和EXE文件
開始--運行--輸入cmd,打開的窗口就是模擬的DOS
不是直接打開masm.exe,在DOS下打開
debug用來調試的,使用的方法 debug 文件名.exe
用它把exe文件載入內存,有U命令查看每一條指令
用T命令一步步執行每一條指令,查看寄存器的變化
1、下載個masm5.0(簡單,適合初學者),裡面至少應包含masm.exe和link.exe,可能還包含其他的,不過我們只需要最基本的這兩個。
2、將masm5.0壓縮包里的程序解壓(包含masm.exe和link.exe),放到一個目錄中(如D:\masm),然後就在這個目錄下建立個文本文件(如XX.txt)寫入個匯編程序,保存,將後綴名改為XX.asm。
3、進入命令提示行(開始--運行--輸入cmd)
4、進入程序所在文件夾(用dos的cd命令),以2中的為例,鍵入「d:」,回車,鍵入「cd masm」,回車,鍵入「masm XX」,回車3下,鍵入「link XX」,再回車3下,再鍵入「XX」,就運行完了。
補充:
1、若程序有問題,在4步驟中會提示,這時就要返回修改
2、如果程序本身並不顯示輸出結果,則4步驟運行完後也不會看到什麼反應,初學者建議找個有顯示輸出結果的程序做試驗
3、第二個步驟中,試驗程序xx.asm應當和masm.exe link.exe放在一起,若不再一起,則需要添加masm環境變數。
9. 什麼是MASM
怎麼說呢,MASM是匯編語言的調試工具吧,我是這樣理解的.
自二十世紀80年代初 Microsoft 公司推出 MASM 1.0 以來,目前MASM的版本已升至6.15,支持MMX Pentium、Pentium II、Pentium III及Pentium 4指令系統。
MASM 4.0支持80286/80287的處理器和協處理器;MASM 5.0支持80386/80387處理器和協處理器,並加進了簡化段偽定義指令和存儲模式偽指令,匯編和連接的速度更快。
MASM 6.0是1991年推出的,支持80486處理器,它對MASM 進行重新組織,並提供了許多類似高級語言的新特點。MASM 6.0之後又有一些改進,微軟又推出MASM 6.11,利用它的免費補丁程序可以升級到MASM 6.14,支持到Pentium III指令系統。
MASM 6.x安裝文件(鏈接下載文件MASM611FULL.ZIP)包含在5張軟盤上,在DOS(或Windows的MS-DOS模擬環境)下,運行第一張盤上的SETUP.EXE程序就可以開始安裝,通常選擇在MS-DOS / Microsoft Windows操作系統下使用MASM。
一個MASM匯編系統,主要包含如下內容:
• MASM 6.15的匯編程序ML.EXE和配套的匯編錯誤信息文件ML.ERR,連接程序LINK.EXE,子程序庫管理文件LIB.EXE;
• CV目錄下的CodeView調試程序CV.EXE以及配套的庫文件;
• HELP目錄下的快速幫助文件QH.EXE,以及MASM宏匯編語言、匯編程序ML、連接程序LINK、調試程序CV等所有幫助文件;
• 本書作者為方便操作建立的批處理文件、I/O子程序庫等。書中例題程序文件也可以建立在某個子目錄(例如HBYYLT)下。
10. 什麼是masm匯編工具包
MASM32是一個由個人開發的包含了不同版本工具組
masm32書寫記錄建的匯編開發工具包。它的匯編編譯器是MASM6.0以上版本中的Ml.exe,資源編譯器是Microsoft
Visual
Studio中的Rc.exe,32位鏈接器是Microsoft
Visual
Studio中的Link.exe,同時包含有其他的一些如Lib.exe和DumpPe.exe等工具。該工具是由Steve
Hutchesson開發的。
完整的MASM匯編系統包含很多文件,但最基本的有如下幾個:
ML.EXE
匯編程序
ML.ERR
匯編錯誤信息文件
DOSXNT.EXE
MS-DOS擴展文件
LINK.EXE
連接文件
LIB.EXE
子程序庫管理文件
如果採用集成開發環境PWB,主要涉及如下文件:
PWWB.EXE
程序員工作平台
NMAKER.EXE
工程維護程序
NMAKE.EXE
nmaker的MS-DOS擴展驅動程序
CV.EXE
源代碼調試器CodeView
CVPACK.EXE
調試信息壓縮器,它為CODEVIEW准備一個可執行文件
HELPMAKE.EXE
幫助文件維護程序
BSCMAKE.EXE
瀏覽資料庫創建程序
SBRPACK.EXE
瀏覽信息程序
PWBRMAKE.EXE
BSCMAKE兼容驅動程序
*.MXT
各種PWB擴展工具文件
*.XXT
各種語言的PWB擴展文件