如何在64位操作系统上使用masm进行编译链接和运行
答案:1 悬赏:0 手机版
解决时间 2021-02-10 20:16
- 提问者网友:山高云阔
- 2021-02-10 14:55
如何在64位操作系统上使用masm进行编译链接和运行
最佳答案
- 五星知识达人网友:持酒劝斜阳
- 2021-02-10 15:20
关于如何在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命令执行。
首先,需要下载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命令执行。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯