预先在E:\masm5.0\MYDOC目录下写好hello.asm文件:
DATA SEGMENT
BUF DB 'HELLO WORLD! THIS IS MY FIRST ASM FILE! $'
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
LEA DX,BUF
MOV AH,09
INT 21H
MOV AH,4CH
INT 21H
CODE ENDS
END START
----------
首先,进入masm5.0所在路径(装入-连接-运行-调试均在masm5.0所在目录中进行)
(我这里masm5.0所在路径是E:\masm5.0\)
Winkey+R — cmd —e:——cd masm5.0
1、装入
格式:masm asm源文件及路径1 obj文件目标路径2(省去则默认当前路径) 论文网
如:E:\masm5.0>masm .\MYDOC\hello.asm .\MYDOC\
结果:程序无错则在E:\masm5.0\MYDOC中增加文件HELLO.OBJ
2、连接
格式:link obj文件路径1
如:E:\masm5.0>LINK .\MYDOC\HELLO.OBJ
(此后当前目录就会出现HELLO.EXE)
3、运行
格式:exe文件全名(即 "HELLO.EXE")
如:E:\masm5.0> HELLO.EXE
4、调试
-u 反汇编
-r 显示寄存器内容
-g [=address1][address2][address3] 执行到断点行,如:-g 12 为执行到第12行
-t [=address][value] 跟踪,配合-g使用 如:-t 12 1 为从第12行开始,每执行1条指令后停下来
-d 查看数据
-q 退出返回操作系统
汇编masm5.0编译器编译汇编文件名时,
有时可能出现 Unable to open input file:bcd2ascii.asm 的错误,可是代码文件确实存在。
这时,可以考虑两个问题,
第一:文件拓展名有没有改过来,因为win7下会自动隐藏拓展名(除非设置过);
第二:是文件的名字系统的差别造成的,windows现在可以支持非常复杂的命名,
在cmd下也可以看到这些命名,但当执行debug,masm等程序时,系统将启动ntvdm,
这是一个nt系统下的vdm,虚拟设备管理,就是一个16位的虚拟机,
此时,ntvdm下的cmd严格执行8.3命名,这时只需要修改文件名,
主文件名8个字符以内,扩展名为asm就可以了