如何用MASM5.0 (图解)

预先在E:masm5.0MYDOC目录下写好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 .MYDOChello.asm .MYDOC


图片

结果:程序无错则在E:masm5.0MYDOC中增加文件HELLO.OBJ

图片

2、连接

格式:link  obj文件路径1

如:E:masm5.0>LINK .MYDOCHELLO.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 退出返回操作系统

图片

上图中,

首先,-u 反汇编整个 hello.exe ;

然后-g 9 ,让程序执行到 第9行停下来;再用-t 跟踪,每执行一条指令停下来;

最后,连续-t跟踪了3次后输入-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就可以了

原文地址:https://www.cnblogs.com/lihaiyan/p/4274475.html