如何使用MASM?

如何使用MASM?

你这种情况是因为没有生成目标文件(.obj)造成的。应该是先用masm(编译)成目标文件,然后在用link(连接)成可执行文件(.exe) 比如,如果在C盘下有运行环境masm5.0和源文件5_3.asm,则应该如下顺序操作: Microsoft Windows XP [版本 5.1.2600]

(C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\Administrator>cd\C:\>cd masm5.0C:\MASM5.0>masm 此过程编译成目标文件 5_3.obj:Microsoft (R) Macro Assembler Version 5.00

Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Source filename [.ASM]: c:\5_3

Object filename [5_3.OBJ]: c:\

Source listing [NUL.LST]:

Cross-reference [NUL.CRF]: 50670 + 415650 Bytes symbol space free 0 Warning Errors

0 Severe Errors 此过程连接成可执行文件 5_3.exeC:\MASM5.0>linkMicrosoft (R) Overlay Linker Version 3.60

Copyright (C) Microsoft Corp 1983-1987. All rights reserved.Object Modules [.OBJ]:c:\5_3Run File [C:5_3.EXE]: c:\

List File [NUL.MAP]:

Libraries [.LIB]:

LINK : warning L4021: no stack segment 此过程debug跟踪调试:C:\MASM5.0>debug c:\5_3.exe-r

AX=0000 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13D6 ES=13D6 SS=13E6 CS=13E6 IP=0000 NV UP EI PL NZ NA PO NC

13E6:0000 8CC8 MOV AX,CS

-tAX=13E6 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13D6 ES=13D6 SS=13E6 CS=13E6 IP=0002 NV UP EI PL NZ NA PO NC

13E6:0002 8ED8 MOV DS,AX

-tAX=13E6 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13E6 ES=13D6 SS=13E6 CS=13E6 IP=0004 NV UP EI PL NZ NA PO NC

13E6:0004 B82000 MOV AX,0020

-tAX=0020 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13E6 ES=13D6 SS=13E6 CS=13E6 IP=0007 NV UP EI PL NZ NA PO NC

13E6:0007 8EC0 MOV ES,AX

-tAX=0020 BX=0000 CX=001C DX=0000 SP=0000 BP=0000 SI=0000 DI=0000

DS=13E6 ES=0020 SS=13E6 CS=13E6 IP=0009 NV UP EI PL NZ NA PO NC

13E6:0009 BB0000 MOV BX,0000

- ps:当然,因为源文件以及生成文件都在当前路径下,所以c:\可以省略直接写文件名即可...如果你的源文件和你的运行环境不在同一个盘符下,那么在生成文件时命名的时候前面记得要加路径,不然就会像楼主那样提示找不到文件...

在CMD里写D:\汇编>masm 55.asm

Object filename [55.OBJ]:

Source listing [NUL.LST]:

Cross-reference [NUL.CRF]:

三次回车

D:\??>link 55.obj

Run File [55.EXE]:

List File [NUL.MAP]:

Libraries [.LIB]:

在来三次回车

运行55.exe

过程是把ASM的源文件编译成目标文件再连接成为EXE的文件

文件名问题,将ex5.27.asm改为ex5-27.asm再试。

老式的8.3格式的文件名不能有两个圆点!