Lover雪儿
想念时,就看看天空,无论距离有多远,我们总在同一片天空下!

预先在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 退出返回操作系统

图片

上图中,

首先,-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就可以了

 

posted on 2015-02-05 12:13  Lover雪儿  阅读(10600)  评论(0编辑  收藏  举报