全部展开
如果在windows上使用masm系列工具,请在cmd上输入ml /? 单击可获取e 5a 48 de 588 b 662616964757 a 686964616 f 313326463739帮助()。 简单的几个与之相关的参数有几十个,请看。
ML.EXE参数的说明(所有参数都有大小写) )。
ML [参数]原始文件的文件名[/link linkoptions]
/AT极小内存模式下的功率(与. model tiny不同) ) ) ) ) ) ) ) ) )。
/Bl filename替换链接(不使用link链接而替换为其他文件) ) ) ) ) ) ) )。
/c只进行分组翻译,不连接
/Cp区分所有名称(标签名称或内存变量名称)的大小写
/Cu将参数转换为大小((默认值) ) ) ) )。
/Cx区分通用名称和外部名称的大小写
生成/coffcoff格式的输出目标文件
/Dsymbol[=value]使用保留字定义文本宏
/EP在画面上生成预处理后的原始列表
/F hexnum将堆栈大小设置为hexnum
/Fb [filename]生成有限制的可执行程序
翻译/Fo filename后,指定. obj程序名称
/Fe filename链接后,指定. exe或.com程序名称
翻译/Fl [filename]生成. lst文件
/Fm [filename]链接后,将生成. map文件
/FPi浮点运算\ "运算模拟器(仅限混合语言)
/Fr [filename]翻译后,生成. sbr程序(如以前的功能调用那样) ) ) ) ) ) ) ) ) )。
/FR [filename]被翻译生成扩展. sbr程序
/Gc指定FORTRAN或PASCAL样式的功能调用
/Gd指定c语言样式的功能调用
/Gz指定Stdcall样式的功能调用
/H number外部名称的字符数限制(默认为31个字符) ) ) )。
/Help用ML调用快速帮助
/I prthname设置导入文件(宏文件)的路径
/link options还指定链接时的选项
/nologo版权抑制(版权)消息
打开/Sa列表程序中的所有有效信息
/Sc生成脚本的定时周期在列表文件中
/Sf将第一阶段的列表添加到列表程序中
/Sg开放列表程序中组合语言的生产中代码
/Sl width配置列表程序中每行的宽度(60~255或0 ) )。
关闭/Sn列表程序的符号表
/Sp length配置列表程序的每页行数(10~255或0 ) )。
/Ss text指定列表程序的副标题(与subtitle相同) ) ) )。
/St text指定列表程序的标题(与title相同的功能
/Sx打开列表错误条件
指定/ta文件名的原始文件名。 用于不为. asm自己指定的情况
/支持虚拟机的虚拟内存
/W将警告级别设置为0 (功能与/W0相同) ) ) ) ) )。
/W[0/1/2/3]设置警告级别(0、1、2、3 )
/WX返回警告的错误代码
/X导入文件删除(忽略) include环境(set include=. ) )。
/Zf声明所有符号都是共同的
/Zd在目标程序中生成CodeView行号
/yydppx在目标程序中生成CodeView信息
/Zm运行选项m510以与MASM 5.1兼容
/Zp [alignment]数组结构变量的起始地址为1、2、4的倍数地址
/Zs只检查语法,不生成目标程序
//? 显示ML命令行语法的摘要
LINK.EXE参数的说明
LINK [objs]、[exefile]、[mapfile]、[libs]、[deffile]
/A:size数组扇区地址、DOS程序中不可用
隐藏/b.lib或. obj路径中的错误消息
输入/cocodeview的符号和列号
/CP:number配置程序最大空间(单位16B ) )。
按默认(DOSSEG )对/DO段的顺序进行排序
将/DS数据加载到数据节的高位地址
不允许/E压缩可执行文件和/CO或/INC
/F同时使用远程呼叫功能和/PAC
显示/helink.exe选项
/HI执行时加载高存储器地址
/INC计划加入ILINK链接
/INF显示链接进程的消息
/LI将行号和绑定地址添加到MAP程序中
将公共符号添加到/mmap程序
/nod [ :库]将忽略指定的库
防止/noelink在库中搜索扩展字
/NOF远程呼叫无效
/NOI 区别大小写字母/NOG 忽略群组的宣告,以便与古早版相容
/NOL 抑制LINK版权讯息
/NON 与/DO同,但不加程式起始位元组
/NOP 不压缩邻近程式区段
/OV 设定抑制插断
/PACKC:number 压缩邻近程式区段
/PACKD:number 压缩邻近资料区段
/PAU 暂停以便更换磁片
/PM 指定Windows或OS/2程式型态
/Q 建立程式库给Quick语言
/SE:number 设定连结时区段总数,预设为128
/ST:number 以此设定堆迭的大小(1~64KB)
/T 建立极小模式程式.COM(需设.model tiny)
/? 显示简单的LINK语法
驱动编译-链接的相关解析:
/nologo 不显示logo信息。
例如: ml /nologo XXX XXX XXX XXX
则不显示
“Microsoft (R) Macro Assembler Version 6.14.8444
Copyright (C) Microsoft Corp 1981-1997. All rights reserved.”
/driver
编译驱动程序, 这个选项造成的最重要的影响是文件中会多出一个"INIT"节区.另外还有".idata"节区,里面包含了一些 IMAGE_IMPORT_DESCRIPTOR结构,指出了需要导入的函数和模块的名称。"INIT"节区的属性被标志为可丢弃,这样装载程序获取了相关的导入信息后,这个节区的内容即被丢弃
/subsystem: native ; 编译 驱动程序
windows ; 编译窗口程序
console ; 编译控制台程序
将对PE文件结构中的 IMAGE_OPTIONAL_HEADER32.Subsystem进行设置,
IMAGE_SUBSYSTEM_UNKNOWN equ 0
IMAGE_SUBSYSTEM_NATIVE equ 1
IMAGE_SUBSYSTEM_WINDOWS_GUI equ 2
IMAGE_SUBSYSTEM_WINDOWS_CUI equ 3
我们需要为驱动指定合适的环境,当链接.exe或者.dll文件的时候,一般指定为Win32子系统。内核模式驱动程序不需要任何子系统,所以我们使用的参数是native
/base:0x10000--将驱动映像的基地址设置为10000h
/align:32--系统内存是很宝贵的,所以最好使用更有效的节区对齐数值
/out:%dvr%.sys--链接器默认会创建以exe作为扩展名的文件,当指定了/DLL选项后,创建的是.dll文件,在这里,我们要强制让它创建以.sys为扩展名的文件
本回答被提问者和网友采纳
已赞过
已踩过<
你对这个回答的评价是?
评论
收起