dosbox怎麼編譯生成obj
㈠ 如何在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命令執行。