汇编教程： |

TASM 5.0 安装及注意事项
作者：含笑 作者网站： 文章源自： 收藏日期：2003-09-23

安装TASM 5.0很简单，您只需要下载本站[相关工具]中的"TASM50.zip"文件，解压后在Windows9x/NT下执 行"INSTALL.EXE"即可开始安装。 1.如果你在安装TASM5.0之后安装Delphi 1.0或Borland C++ 4.x及更高版，你需要手动更改系统的设置以 使这些产品可以共存于同一个系统中——检查“System.ini”文件的[386Enh]一节是否有多个TDDEBUG.386驱动 项。删除多余的TDEBUG.386项，保证只有这个版本的TDDEBUG.386装入。这可通过检查[386Enh]小节来确认，如 果安装完TASM 5.0，未见其更改，请手工在System.ini文件的[386Enh]小节中增加： device=c:\tasm\bin\windpmi.386——支持TASM5.0的32位工具。 device=c:\tasm\bin\tddebug.386——支持我们的调试器。 2.配置Windows NT命令行提示符（相当于Windows9x的MS DOS方式） 在NT命令行提示符下运行16位保护方式程序如tlink，需要参照以下所示在CONFIG.NT文件中增加一行： ntcmdprompt 3.定制安装TASM5.0时的选项： 16-bit command line tools [3085K] 安装16位工具（TASM、TLINK等），这也是最小化安装的默认选项。(建议不安装) 32-bit command line tools [3163K] 安装32位工具（TASM32、TLINK32） Turbo Debugger for DOS [1041K] 安装Turbo的DOS调试工具，也是最小化安装的默认选项。(建议不安装) Turbo Debugger for Windows [1533K] 安装Turbo的Windows调试工具及相关的其它调试工具。 Turbo Debugger for Win32 [1502K] 安装Turbo的Win32程序调试工具。 Examples [580K] 安装Borland TASM的例程。 Documentation Files [6K] 安装说明文档。 4.如何在Windows9x/NT下运行TASM32等32位工具 TASM5.0安装程序会在Windows程序管理器下建立TASM5.0组，但是它不会为那些在命令行提示符下运行的工 具建立相应的PIF文件。TASM.EXE等16位可执行工具不需要特别的PIF文件就能够运行在常规的Windows MS-DOS 方式下。但要从Windows MS-DOS方式下运行TASM32等32位工具，则需要为其建立相对应的PIF文件。最简单的方 法是利用B32TOOLS.PIF（在TASM\BIN目录下）在Windows MS-DOS方式下运行这些32位工具—在WIndows下双击 B32TOOLS.PIF,会激活一个DOS窗口，之后可以在其下运行TASM32.EXE和TLINK32等32位工具。 TASM 5.0 文件清单 X:\TASM <dir> BIN <dir> TASM5.0工具包执行文件(77个) TD.PIF 为调试工具TD生成一个供其运行的命令提示符环境 B32TOOLS.PIF ★★定义一个Tasm5.0 32位工具运行的命令提示符环境 TASM.EXE 16位实模式汇编编译器 TASMX.EXE 16位保护模式汇编编译器 TASM32.EXE ★★★32位保护模式汇编编译器 TLINK.EXE 16位连接程序(只能连接16位的目标文件) TLINK32.EXE ★★★32位连接程序(只能连接32位的目标文件) BRC.EXE 16位的资源编译/绑定程序 BRCC.EXE 16位的资源编译程序 BRC32.EXE ★★★32位的资源编译/绑定程序 BRCC32.EXE ★★32位的资源编译程序(单纯的资源编译器，功能与BRC32一致) MAKE.EXE ★★★一个能调用MAKEFILE并按此文件的规定完成编译、链接的工具 MAKER.EXE MAKE的NT版(在WindowsNT下运行MAKE程序遇到困难时用它试试) TLIB.EXE ★★★Tasm库管理工具 IMPLIB.EXE ★★★由动态链接库生成相应引入库的工具(一个绝对有用的工具) IMPDEF.EXE ★★由动态链接库生成其模块定义文件的工具 H2ASH.EXE 由C/C++头文件生成Tasm头文件(包含文件)的转换工具(16位) H2ASH32.EXE ★★由C/C++头文件生成Tasm头文件(包含文件)的转换工具(32位) WINSTUB.EXE 给Windows程序附加一个DOS头(这样在DOS下运行PE程序会出现提示) MAKESWAP.EXE 虚拟内存工具(出现内存溢出错误时可以用它建立一个磁盘交换文件) OBJXREF.EXE 将OBJ转化为REF文件的转换工具 RLINK.EXE 资源连接器(把编译后的资源文件同可执行文件装配到一起) TDUMP.EXE ★★文件观察器(主要用于获取.EXE或.OBJ或.LIB文件的相关信息) THUNK.EXE 微软Thunk工具，主要用于16/32位程序的转换(详细说明见EXAMPLES) TOUCH.EXE 设置列表中文件的日期、时间为当前或指定日期、时间的工具 JITIME.EXE 即时调试安装工具 GROUPS.EXE 在Windows的程序管理器下建立Tasm5.0的程序组 32RTM.EXE （没用过） TDSTRIP.EXE 符号表解析程序(for 16位) TDSTRP32.EXE 符号表解析程序(for 32位) TDMEM.EXE TD内存观察器(仅运行于DOS方式下) TDRF.EXE TD远程文件传输工具 TD.EXE DOS程序调试工具(集成环境) TDW.EXE Windows程序调试工具(集成环境) TD32.EXE Win32程序调试工具(集成环境) TDINST.EXE TD.EXE的配置工具(集成环境) TDWINST.EXE TDW.EXE的配置工具(集成环境) TD32INST.EXE TD32.EXE的配置工具(集成环境) TDWINI.EXE TD显示动态连接库配置工具(for Windows) TDREMOTE.EXE 远程调试工具(for DOS) WREMOTE.EXE 远程调试工具(for Windows) WRSETUP.EXE 远程驱动设置程序(for Windows) GREP.COM （没用过） WINDPMI.386 驱动程序，应该增加到“System.ini”文件[386Enh]一节 TDDEBUG.386 调试程序的驱动程序 BUILTINS.MAK ★内建makefile文件(如果用户缺省makefile文件则MAKE.EXE调用它) TLINK.CFG TLINK的配置文档 TLINK32.CFG TLINK32的配置文档 TASM.HLP Turbo Assembler帮助文件(Windows帮助文件格式) TDWINI.HLP TD显示动态连接库配置工具帮助文件 TDHELP.TDH TD.EXE的帮助文件 TDWHELP.TDH TDW.EXE的帮助文件 TD32HELP.TDH TD32.EXE的帮助文件 RTM.EXE 非独立工具，由其他工具调用(相当于一个覆盖文件) TDCON32.EXE 非独立工具，由TDW.EXE调用(相当于一个覆盖文件) DPMI16BI.OVL 覆盖文件 DPMI32VM.OVL 覆盖文件 RLINK32.DLL 动态连接库 RW32CORE.DLL 动态连接库 RWRES.DLL 动态连接库 BWCC.DLL 动态连接库 TDKBD32.DLL 动态连接库 TDVID16.DLL 动态连接库 TDWINTH.DLL 动态连接库 DUAL8514.DLL 显示驱动动态连接库 STB.DLL 显示驱动动态连接库 SVGA.DLL 显示驱动动态连接库 SVGA32.DLL 显示驱动动态连接库 TDWGUI.DLL 显示驱动动态连接库 HELP.ICO 图标文件 TDDOS.ICO 图标文件 TDOSINST.ICO 图标文件 TD32.ICO 图标文件 TD32INST.ICO 图标文件 TDW.ICO 图标文件 TDWINST.ICO 图标文件 WORKOPT.DOS （不知道，名称含义好象是工作选项？） INCLUDE <dir> TASM 5.0包含文件(3个) (建议把你的包含文件放置于此) MMSYSTEM.INC 16位包含文件 TOOLHELP.INC 16位包含文件 WINDOWS.INC 16位包含文件 LIB <dir> TASM 5.0库文件(2个) (建议把你的引入库文件放置于此) IMPORT.LIB 16位引入库文件 IMPORT32.LIB 32位引入库文件 EXAMPLES <dir> TASM 5.0例程 (其下文件略) . DOC <dir> TASM 5.0说明文档(10个) MAKE.TXT MAKE和MAKER的使用说明 TDUMP.TXT TDUMP的使用说明 TLIB.TXT IMPLIB、IMPDEF和TLIB的使用说明 TLINK.TXT TLINK(TLINK32),TLINK.CFG,Response files,模块定义文件使用说明 TSM_HELP.TXT 本文件解答了Turbo Assembler的一些常见问题 TSM_UTIL.TXT TDSTRIP(TDSTRP32)、TDMEM、TDWINI、TDRF使用说明 TD_ASM.TXT TURBO DEBUGGER Assembler-level debugging TD_HDWBP.TXT TURBO DEBUGGER USING THE HARDWARE DEBUGGING FEATURES TD_RDME.TXT TURBO DEBUGGER Turbo Debugger Readme file TD_UTILS.TXT H2ASH UNPAK.EXE . 解包程序 README.COM . 安装完成时运行一次，以后好象没什么作用了 TSM_INST.TXT . TASM 5.0安装说明文档 TSM_RDME.TXT . TASM 5.0总概 TASM 5.0 技术支持及升级 宝蓝(Borland)站点：http://www.borland.com/ 宝蓝TASM网页：http://www.borland.com/borlandcpp/cppcomp/tasmfact.html 宝蓝TASM新闻组：news://newsgroups.borland.com/borland.public.tasm/ 最小的TASM 5.0 工具包 如果您想用汇编语言编制一个Windows程序，那么您的TASM 5.0工具包至少需要包含以下文件： TASM32.EXE ;编译器 TLINK32.EXE ;连接器 BRC32.EXE ;资源编译器 TLIB.EXE ;库管理工具 IMPLIB.EXE ;参见上面 当然，如果你不想用最后两个工具,可以用Turbo ASM5.0的“import32.lib”取代它们,只是前者是“渔”， 后者是“鱼”，您要哪个呢？最后你必须再拥有一个文本编辑器——最简单的就是Windiows9x的记事本了，可是 不十分趁手，因为编写程序总希望编辑器能有记忆、块拷贝功能，不过不要着急，本站终究要推出几个用汇编编 写的实用程序，其中就有9x&2K下的汇编语言编辑器了！ 编译器TASM/TASMX/TASM32简介 [暂只介绍TASM32] Turbo Assembler Version 5.0 Copyright (c) 1988, 1996 Borland International Syntax: TASM32 [options] source [,[object] [,[listing] [,[xref]]]] [;] 句法： TASM32 [选项] 源文件名 [,[目标文件名] [，[清单（或列表）文件名] [，[索引(或符号)表文件名]]]] [;] 说明：(句法英文行非原文，是本站根据实际修改而得，更能反映实际情况) 1. “选项”可以是下面任意一项或几项的组合。请根据具体情况选用，也可不要。不过稍后你会发现，其中一些选项在编译Win32汇编语言程序时起着很重要的作用。翻译是我结合经验采用意译方式表述的，错误之处，还请指正。更详细的说明，将在论坛专题中一一说明和示例。 /a,/s Alphabetic or Source-code segment ordering 规定在生成目标文件时，按英文字母顺序还是源代码段顺序写段（默认为/s） /c Generate cross-reference in listing 在清单文件中产生交叉引用索引 /dSYM[=VAL] Define symbol SYM = 0, or = value VAL 定义汇编程序符号（供条件编译使用，以使条件编译时得变量或信息的初始值可以通过TASM32 命令行传递获取） /e,/r Emulated or Real floating-point instructions 创建防真的或实际的符点指令的代码 /h,/? Display this help screen 在屏幕上显示本帮助信息 /iPATH Search PATH for include files 设置包含文件搜索路径 /jCMD Jam in an assembler directive CMD (eg. /jIDEAL) 输入一个汇编指令（如：/jIDEAL） /kh# Hash table capacity # symbols 散列表容纳#个符号 /l,/la Generate listing: l=normal listing, la=expanded listing 规定汇编清单文件：l=正常清单文件，la=扩充的清单文件 /ml,/mx,/mu Case sensitivity on symbols: ml=all, mx=globals, mu=none 设置编译时对符号大小写敏感度：ml=全部敏感，mx=对公共或外部名称大小写敏感，mu=不敏感 /mv# Set maximum valid length for symbols 设置符号的最大有效长度（符号超过设置值长度部分将被忽略） /m# Allow # multiple passes to resolve forward references 允许第#次编译（扫描）可以向前引用（编译一般采用二次扫描，所以一般使用：/m1、/m2） /n Suppress symbol tables in listing 取消清单文件中的表 /os,/o, /op,/oi Object code: standard, standard w/overlays, Phar Lap, IBM 规定目标代码格式，分别对应：标准格式，标准w/overlays格式，Phar Lap格式和IBM格式 /p Check for code segment overrides in protected mode 检查非纯代码（实模式下可写代码段，而保护模式下就会产生问题，保护模式下写代码段一般是 通过别名段描述符来实现的，参见‘例程精选’中的‘Pm09.zip’——题外话，呵呵） /q Suppress OBJ records not needed for linking 在目标文件取消那些和链接无关的数据记录 /t Suppress messages if successful assembly 如果编译成功则取消所有信息 /uxxxx Set version emulation, version xxxx 设置版本冲突检测 /w0,/w1,/w2 Set warning level: w0=none, w1=w2=warnings on 设置出错告戒级别 /w-xxx,/w+xxx Disable (-) or enable (+) warning xxx 使不能(/w-)或使能(/w+)出错警戒 /x Include false conditionals in listing 在清单文件中包含假条件（条件汇编有用：可以在清单文件中包括不符合条件分支的代码） /z Display source line with error message 在错误信息中显示源代码行 /zi,/zd,/zn Debug info: zi=full, zd=line numbers only, zn=none 调试信息：zi=全部，zd=仅有行号，zn=无 2. “源文件名”，必选项，是你用任意文本编辑器编写的汇编语言程序文件的名称，文本格式。如果该文件使用 的是推荐扩展名“ASM”，式中可以不输入文件名的扩展部分。当然，你也可以指定其它扩展名，但在式中一定要 输入程序文件的全名——建议源程序使用推荐扩展名。 3. “目标文件名”，可选项，是我们编译的目的，供链接程序链接装配时使用，二进制格式。如果编译正确，一 个目标文件就会建立。如果你在式中未指定名称（包括扩展名），编译程序就会自动以“源程序文件名”+ “.OBJ”作为它的文件名（默认），否则就按你指定的——建议采用默认的。 4. “清单文件名”，也称“列表文件名”，可选项，便于我们查找源程序中的各种错误，文本格式。默认扩展名 为“.LST”。 5. “索引表文件名”，也叫“符号表文件名”，可选项，其中包含了程序中的各种符号、码段等信息，二进制格 式，默认扩展名为“.XRF”。为了能阅读这种文件，我们应该使用CREF命令将其转换为文本文件。CREF命令最常 用的格式是： CREF [符号表文件名]; 示例： TASM32 myfile,,, 按默认方式，编译"myfile.asm"文件，生成"myfile.obj"、"myfile.lst"和"myfile.crf"文件。 TASM32 myfile; 按默认方式，编译"myfile.asm"文件，只生成"myfile.obj"文件。 TASM32 /v /z myfile,,; 编译期间将全部状态信息和出错信息显示在屏幕上，并生成"myfile.obj"、"myfile.lst"文件。