masm使用教程 - 图文(4)

2020-07-27 11:03

/Fb[file] Generate bound executable /Fe Name executable /Fl[file] Generate listing /Fm[file] Generate map /Fo Name object file /FPi Generate 80x87 emulator encoding /Fr[file] Generate limited browser info /FR[file] Generate full browser info /G Generate Pascal or C calls 生成限制性的可执行文件 设置可执行文件的名称 生成汇编代码列表文件 生成链接映象文件 设置目标文件的名称 生成80x87模拟代码 生成源浏览文件(SBR) 生成扩展源浏览文件(SBR) 指定汇编生成的调用格式。 C:pascal类型 D:C类型 /H Set max external name 设置扩展名的最大长度 length /I Add include path /link /nologo Suppress copyright message /Sa Maximize source listing /Sf Generate first pass listing /Sl Set line width /Sn Suppress symbol-table listing /Sp Set page length /Ss Set subtitle /St Set title /Sx List false conditionals /Ta Assemble non-.ASM file /VM Enable virtual memory /w Same as /W0 /WX /WX Treat warnings as errors /W Set warning level /X Ignore INCLUDE environment path /Zd Add line number debug info /Zf Make all symbols public /Zi Add symbolic debug info /Zm Enable MASM 5.10 compatibility /Zp[n] Set structure alignment /Zs Perform syntax check only 添加include文件的目录 链接选项和库 取消版权信息 列表文件最大化 生成第一遍的汇编代码列表 设置列表文件行宽 隐藏列表文件中的符号表 设置列表文件的页长度 设置列表文件的子标题 设置列表文件的标题 列表文件中列举错误条件 汇编非ASM后缀的文件 启动虚拟存储器 设置告警级别为0 传回告警的错误码 设置告警级别(1、2、3) 忽略INCLUDE环境路径 在目标文件中产生CodeView列号 在目标文件中产生CodeView所有公共标识符 在目标文件中产生CodeView标识符 与MASM 5.10兼容 排列结构数据的起始地址为n(1、2、4)的倍数 只检查语法不产生目标文件 下面使用ML.EXE对ASM文件进行汇编和链接。汇编文件的名称为HELLO.ASM。 执行“ML hello.asm”指令,如无错误的话将生成可执行文件HELLO.EXE。 Microsoft (R) Macro Assembler Version 6.00

Copyright (C) Microsoft Corp 1981-1991. All rights reserved.

Assembling: hello.asm

Microsoft (R) Segmented-Executable Linker Version 5.13 Copyright (C) Microsoft Corp 1984-1991. All rights reserved.

Object Modules [.OBJ]: hello.obj Run File [temp.exe]: \List File [NUL.MAP]: NUL Libraries [.LIB]:

Definitions File [NUL.DEF]: ;

LINK : warning L4021: no stack segment

运行HELLO.EXE,看看显示结果是不是“Hello, world.”。

2.7. 用DEBUG调试可执行文件

用MASM编译了汇编语言源文件HELLO.ASM之后,用DEBUG调试可执行程序HELLO.EXE。具体的做法是:

1、 在“命令提示符”窗口下执行“DEBUG <文件所在路径+文件名>”指令。 2、 执行“R”指令观看段寄存器CS和DS的值,在EXE文件中两值应该不同。 3、 执行“U”指令观看CS:IP所指地址的反汇编代码。

4、 程序刚开始时会设置DS段寄存器的值,将其指向DATA1数据段。用跟踪指令“P”检查

这两条指令的执行结果。

5、 DS段寄存器的值被修改后,执行指令“D DS:0”,观看数据段的具体内容。

6、 继续用指令P进行程序跟踪,检查各寄存器和标志位的修改内容以及程序的运行情况。 7、 程序正常结束后,用“R IP”指令修改寄存器IP的值,将其设置为0。

8、 重复第4步到第6步的工作,改用指令T而不是指令P对程序进行跟踪,观看跟踪情况。

2.8. 用MASM和LINK生成COM可执行文件

对于有多个数据段、栈段的汇编语言程序,建议将其汇编和链接成EXE文件。如果程序的代码和数据量比较小,可以将其汇编和链接成COM文件。EXE文件可以有多个段,每个段的最大空间为64KB,程序在执行需要对多个段进行管理,所以EXE文件的结构有些复杂。而COM文件只有一个段,执行代码和数据都处于一个段中,因此,COM文件比EXE文件显得更加短小精悍。COM文件其唯一的约束就是可执行的程序的大小不允许超过64KB。

编写如下的汇编程序,文件名定为HELLO2.ASM,内容如下: code1 segment

assume cs:code1, ds:code1 start:

jmp next msg db \next:

mov ax, cs mov ds, ax

mov dx, offset msg

add dx, 100h mov ah, 9 int 21h

mov ax, 4c00h int 21h code1 ends end start

执行以下指令对源文件进行汇编:MASM HELLO2.ASM。

执行以下指令将目标文件链接成COM文件:LINK /TINY HELLO2;。

命令执行完毕后,将生成HELL2.COM文件,执行HELLO2观看运行结果。

比较一下HELLO.EXE和HELL2.COM的大小,用DEBUG调试可执行程序HELLO2.COM,了解它的程序结构。


masm使用教程 - 图文(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:工商管理双学位人力资源作业

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: