MASM6.1使用方法(适合初学者)

本文为Johnpher原创,转载请声明。

使用MASM6.1中的ML汇编器来汇编程序,需要在MS-DOSDOS提示符下输入:

              ml  /c  /coff  example.asm

Ps:

ml不会像其他的集成开发环境一样在打开编译器后产生一个非常友好的界面,允许你导入自己的源文件之后再进行编译。Ml必须通过DOS的命令实现汇编。如果直接打开ml,则在MS-DOS下会提示:

usage : ML  [options]  filelist  [/link  linkoptions]

Run “ML/help” or “ML/?” for more info

 

ml  /c  /coff  example.asm中各参数的含义为:

/c     Assemble  without  linking

/coff  generate  COFF(Common Object file format)  formate  object  file

 

如果程序没有什么错误,那么在DOS提示符下会出现如下信息:

Microsoft  (R)  Macro  Assembler  Version  6.11

Copyright  (C)  Microsoft  Corp  1981-1993.  All  rights  Reserved.

Assembling :  example.asm

文件EXAMPLE.OBJ 将会加到文件目录中。如果程序有错误,错误信息会显示出来,并生成no.obj文件。

链接时同样道理,在MS-DOS中输入

Link  /subsystem:console  /entry:start  /out:example.exe  example.obj  io.obj  kernel32.lib

即可。

要使用Windbg,必须在ML后加上  /Zi (Add Symbolic Debug info)转换参数,告诉汇编器在输出时添加调试信息。此时,汇编命令如下:

ml  /c  /coff  /Zi  example.asm

连接器则加了一个转换参数  /debug ,如下

link  /debug  /subsystem:console  /entry:start  /out:example.exe  example.obj  io.obj  kernel32.lib

Windbg调试时只需选择File-OpenExecutable即可。

点击StepInto然后再弹出的对话框中选择Enter,如果为出现某行高亮显示的源代码窗口,则再次单击StepInto,然后将Command窗口最小化,即可看到带有高亮显示的源文件,按F11即可进行跟踪。

有时单击StepInto后无法进入代码调试界面,一般需要将原来生成的文件全部清除,再重新生成即可。

另外,编译时加上 /Fl 参数生成的 .lst 文件对于调试十分重要。

 

在调试的过程中,需要监视内存中的变量,可以之间点击Memory Window或者使用快捷键Alt+5,在弹出的Memory Options窗口中填写要监视内存的起始地址,选择显示格式即可。

填写内存地址时可直接将编译过程中生成的.lst对应的内存地址写入,也可以使用取地址符加变量名称的方式,如&temp。

 

内存监视窗口的数据一般分为两部分,左边是16进制格式的内存数据,右边是根据所选择类型显示的对应类型的数据。

原文地址:https://www.cnblogs.com/johnpher/p/2570686.html