如何在64位操作系統上使用masm進行編譯鏈接和運行

關於如何在64位操作系統上進行編譯鏈接:

首先,需要下載debug.exe,DOSbox,masm

假如彙編源文件放在:D:\Develop\ASM_Program\first_asm\下,文件名爲1.asm

下載一個masm6.15,將MASM.EXE,LINK.EXE,ML.EXE三個文件複製到1.asm目錄中,

1.asm內容:(求2^3)

assume cs:abc

abc segment
mov ax,2
add ax,ax
add ax,ax

mov ax,4c00H
int 21H
abc ends
end


win+R,輸入cmd

進入命令行,輸入

C:\Users\Administrator>D:
D:\>cd Develop\ASM_Program\first_asm

至此,進入了源程序所在目錄,之後,輸入:
D:\Develop\ASM_Program\first_asm>masm 1.asm

會顯示:
Microsoft (R) MASM Compatibility Driver
Copyright (C) Microsoft Corp 1993.  All rights reserved.


 Invoking: ML.EXE /I. /Zm /c /Ta 1.asm


Microsoft (R) Macro Assembler Version 6.15.8803
        Patched for you by promethee [ECL] in the year 2001 - enjoy
Copyright (C) Microsoft Corp 1981-2000.  All rights reserved.


 Assembling: 1.asm


D:\Develop\ASM_Program\first_asm>

這樣,程序就被編譯好了,在1.asm文件夾下出現了一個1.obj的文件

之後,再輸入:

link 1.obj之後回車

會顯示鏈接信息:

Microsoft (R) Segmented Executable Linker  Version 5.60.339 Dec  5 1994
Copyright (C) Microsoft Corp 1984-1993.  All rights reserved.


Run File [1.exe]: //顯示這個之後需要按下回車之後纔出現下一行
List File [nul.map]:
Libraries [.lib]:
Definitions File [nul.def]:
LINK : warning L4021: no stack segment
LINK : warning L4038: program has no starting address

這樣,就生成了1.exe文件,即可執行文件

但是由於操作系統是64位的,不能直接運行這個文件,所以,需要使用DOSbox進行運行

我們先把下載下來的debug.exe也放到D:\Develop\ASM_Program\first_asm下面

打開DOSbox,輸入:

mount c d:\Develop\ASM_Program\first_asm\

之後,輸入c:

然後輸入debug 1.exe

就使用debug打開了1.exe了

可以輸入r命令查看當前寄存器的狀態

其中,CX寄存器中記錄了程序的大小

輸入t命令進行單步執行

注意,執行到最後一句int 21時,要使用p命令執行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章