




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
汇编编译工具MASM的使用2.1. 实验目的1、 学习如何安装MASM;2、 学习如何使用和使用编译和链接汇编语言程序。2.2. 基础知识1、常用汇编语言工具软件名称运行平台软件说明下载地址Masm V6.11DOS微软汇编工具Masm32 V6.0Windows 98/2000/XP微软Win32汇编工具/tools/dev/masm32v6.zipMasm32 V8.0Windows 98/2000/XP微软Win32汇编工具http:/www.lwp.ca/masm32/masm32v8.zip76/ddcrack/assembler/tools/masm32v8.zipTasm V5.0DOSBorland汇编工具/home/tools/tasm5.zip76/ddcrack/assembler/tools/tasm50.zip2、DOS汇编与WIN32汇编在DOS下编写汇编程序,程序员可以管理系统的所有资源,访问和改动系统中所有的内存,修改内存控制块,修改中断向量表截获中断,直接对I/O端口进行读写。DOS是个单任务操作系统,只有一个运行级别,任何进程和DOS操作系统都是同等级别的。因此,DOS系统中各个进程会互相影响,如果某个进程死机的话,整个系统都会垮掉。DOS工作在实模式下,程序员可以寻址1M的内存,通过段寄存器来指定段的初始地址,每个段的大小为64K。超过1M的部分,就只能把他作为XMS使用。1M以上的内存空间只能用作数据存放而无法在其中执行程序。Win32是指32位的Windows操作系统,进程有多种运行级别,操作系统工作在最高级别0级,而应用程序工作在3级。在第三级别,进程无法直接访问I/O端口,无法访问其它进程运行的内存,连向自己的运行代码写入数据都是非法的。只有对于最高级别的进程,系统才是全开放的。Windows工作在保护模式下,所有的资源对进程来说都是被“保护”的。在内存方面,Windows使用了处理器的分页机制,程序员不必用一个段寄存器去指定段的地址,因为在保护模式下,段寄存器的含义是不同的(参见80386手册方面的书籍)。程序员可以直接指定一个32位的地址来寻址4GB的内存。在程序结构方面,Windows程序也有很大的不同,它是“基于消息”的。在上面列举的汇编工具中,一些是DOS汇编工具,一些是Win32汇编工具。初学者可以从DOS汇编入手,先掌握汇编编程的思路、基本语法和编程技巧,待入门后再学习Win32汇编。当然,学习DOS汇编并不一定需要安装和使用DOS操作系统。程序员可以在Win32环境中安装MASM 6.0或其它16位汇编工具,在命令提示符状态下编译和链接DOS汇编程序。DOS汇编程序在Win32环境中运行时,操作系统会模拟实模式运行16位进程。对于一些可能会影响整个操作系统工作的指令,Win32操作系统会拒绝执行。2.3. MASM的安装首先从Internet下载masm60.zip,这是一个ZIP压缩文件。可以用WINZIP或WINRAR等压缩解压软件指定一个目录将其解压,目录名例如为F:MASM60。运行“命令提示符”,在解压目录中运行setup程序,开始安装MASM。在主菜单界面选择“Install the Microsoft Macro Assembler”继续。在系统设置界面选择“DOS/Windows & NT”操作系统继续。选择安装Windows有关文选择安装PWD(Programmers WorkBench),继续。无须安装“Brief compatibility”(常见编辑器兼容),继续。选择复制微软鼠标驱动器“Microsoft Mouse Driver”,继续。选择安装MASM工具,继续。选择安装帮助文件,继续。选择安装例程(sample program),继续。选择系统的安装目录,例如将系统安装在E盘。接下来是询问各部分程序的安装目录,一般情况下由系统自行决定即可。参数设置完毕后最后检查一次。检查如果无需改动,则选择“NO CHANGES”开始安装。安装完毕后系统会提示MASM 6.11与5.1版本有一些区别,具体的内容可以观看安装菜单中的“Special Note for MASM v5.1 users”,或者编程指南中的附录A。设置MASM的DOS操作系统环境参数需要修改autoexec.bat和config.sys两个文件,MASM提供了NEW-VARS.BAT和NEW-CONF.SYS两个文件作为参考。如果MASM安装在Windows 98/NT/2000/XP操作系统环境下,需要参考文件NEW-VARS.BAT的内容进行设置,设置方式稍后介绍。接下来是Windows 3.x操作系统环境下的设置要求。如果MASM 6.11安装在Windows 3.0/3.1/3.11/3.2操作系统中,需要参考文件NEW-SYS.INI修改系统环境配置文件SYSTEM.INI。如果MASM 6.11安装在32位Windows中,无须理会NEW-SYS.INI的内容。然后是关于PWD(Programmers WorkBench)的设置,安装系统会提供一个参考文件TOOL.PRE。最后是有关内存方面的设置。当MASM工作在非DOS环境下时,不需要理会这些方面的内容。在安装结束前最好看一看“Special Note for CodeView users”、“Special Note for MASM v5.1 users”、“README.TXT”和“PACKING.TXT”的内容。最后再退出安装。2.3. WIN32操作系统中MASM的环境参数设置安装完MASM后,需要设置一下MASM的环境参数。步骤如下:在桌面“我的电脑”上点击鼠标右键,在弹出式菜单上选择“属性”项,在“系统属性”窗口里打开“高级”页。点击“环境变量”按钮。在“环境变量窗口”的系统变量列表中选择“PATH”项,再点击系统变量列表下的“编辑”按钮。在“编辑环境变量窗口”的“变量值”栏里追加MASM的BIN、BINB、INCLUDE目录的路径参数。例如:当MASM安装在E:MASM611目录,则在“变量值”栏里追加“; E:MASM611BINR; E:MASM611BIN”。除此之外,还需要增加以下环境变量:LIB=c:MASM611LIBINCLUDE=c:MASM611INCLUDEINIT=c:MASM611INITHELPFILES=c:MASM611HELP*.HLPASMEX=c:ASM611SAMPLES说明:环境参数改变后需要重新启动计算机才能生效。有些机房在计算机中使用了磁盘保护卡,一旦重新启动所有安装的文件和设置的参数都将消失。在这种情况下,可以在DOS命令行模式中输入一些临时命令设置MASM的环境参数。(假设MASM安装在E:MASM611目录)SET PATH=E:MASM611BINR;E:MASM611BIN;%PATH%SET LIB=E:MASM611LIBSET INCLUDE=E:MASM611INCLUDESET INIT=E:MASM611INITSET HELPFILES=E:MASM611HELP*.HLPSET ASMEX=E:MASM611SAMPLES2.4. MASM.EXE的使用MASM.EXE用于将汇编源程序汇编成目标文件。当MASM汇编环境参数配置好之后,在“命令提示符”窗口中键入“MASM /H”指令,将显示出MASM的使用介绍。MASM的命令格式如下:MASM option. source(.asm),out(.obj),list(.lst),cref(.crf);可选部分是MASM的各种汇编参数。source(.asm)指定汇编源文件的名称,缺省的扩展名是ASM。out(.obj)指定输出的目标代码文件。缺省的文件名与汇编源文件相同,扩展名改为OBJ。list(.lst)指定输出的列表文件,缺省的扩展名是LST。缺省情况下MASM不生成列表文件。cref(.crf)指定输出的交叉参考文件,缺省的扩展名是CRF。缺省情况下MASM不生成交叉参考文件,交叉参考文件的后缀为SBR。最后的分号表示其后的项目按缺省情况处理。以下就各个汇编参数逐个加以说明。参数名作用/C生成交叉参考文件/D=定义一个符号sym并对其赋值val/E模拟浮点运算指令和IEEE格式/H显示MASM的使用帮助/HELP显示MASM的使用帮助/I寻找引入文件(INC)的目录/L生成列表文件/La生成全部列表文件/ML区分所有标识符号的大小写/MU将全局标识符号转换为大写/MX区分全局标识符号的大小写/N隐藏列表文件中的符号表/T隐藏成功汇编时的显示消息/W0/1/2设置告警等级(0:无;1:严重;2:劝告)/X列举错误条件/Zi生成CodeView的行号信息/Zd生成CodeView的标识符号信息下面用一个汇编程序说明MASM.EXE的使用方法。汇编程序名称为HELLO.ASM,内容如下:data1segmentmsgdbHello, world.,0dh,0ah,$data1endscode1segmentassume cs:code1, ds:data1start:movax, data1movds, axmovdx, offset msgmovah, 9int21hmovax, 4c00hint21hcode1 endsend start输入“masm hello;”指令,指令后的分号表示一切按缺省情况进行。运行后显示以下内容:Microsoft (R) MASM Compatibility DriverCopyright (C) Microsoft Corp 1993. All rights reserved. Invoking: ML.EXE /I. /Zm /c hello.asmMicrosoft (R) Macro Assembler Version 6.11Copyright (C) Microsoft Corp 1981-1993. All rights reserved.Assembling: hello.asm执行MASM /LA /ZI /ZD HELLO.ASM指令,用记事本观看生成的HELLO.LST的内容。2.5. LINK.EXE的使用LINK.EXE用于将目标文件链接成可执行文件。当环境参数配置好之后,在“命令提示符”窗口中键入“LINK /?”指令,将显示出LINK的参数表。LINK的命令格式如下:LINK option. ,;可选部分是LINK的各种链接参数。objs指定目标文件的名称,缺省的扩展名是OBJ。可以有多个目标文件,目标文件之间用加号或者空格间隔。exefile指定输出的可执行文件的名称。缺省的文件名与目标文件相同,缺省扩展名改为EXE。mapfile指定输出的列表文件的名称,缺省的扩展名是MAP。缺省情况下不生成列表文件。libs指定链接时使用的库文件,缺省的扩展名是LIB。可以有多个库文件,库文件之间用加号或者空格间隔。缺省情况下MASM不使用库文件。最后的分号表示其后的项目按缺省情况处理。deffile指定输出的定义文件的名称,缺省的扩展名是DEF。缺省情况下不生成定义文件。最后的分号表示其后的项目按缺省情况处理。以下就各个链接参数逐个加以说明。参数名缩写作用/ALIGNMENT:size/A:size根据指定的大小在分段执行文件中排列段数据,不可用于DOS程序/BATCH/B隐藏库或目标文件找不到的提示/CODEVIEW/CO加入CodeView的标识符号及列号,该选项与/EXEPACK不兼容。/CPARMAXALLOC:number/CP:number以16字节为单位设置程序最大分配空间/DOSSEG/DO用缺省顺序排列段(用于微软高级语言)/DSALLOCATE/DS从数据段的尾部开始装入全部数据,用于链接成EXE文件/EXEPACK/E压缩可执行文件的大小,与/CO和/INCR不兼容/FARCALLTRANSLATION/F优化远程调用,当使用/TINY时自动使用/FARCALL。当链接WINDOWS程序时不建议同时使用 /FARCALL和/FARCALLTRANSLATION/HELP/HE显示简要帮助信息/HIGH/HI执行时尽可能地装入高端内存区,和/DEALLOC并用。(用于微软高级语言)/INCREMENTAL/INC准备加入ILINK链接,与/EXEPACK和/TINY不兼容。/INFORMATION/INF显示链接过程的信息/LINENUMBERS/LI将源文件行号和相关地址加入MAP文件,目标文件必须带行号汇编。/MAP/M将公共标识符加到MAP文件/NODEFAULTLIBRARYSEARCH:library/NOD:library忽略指定的缺省库/NOEXTDICTIONARY/NOE阻止LINK寻找库中的扩展字典,当重定义标识符导致错误L2044时使用/NOE/NOFARCALLTRANSLATION/NOF禁止远程调用/NOIGNORECASE/NOI区别大小写字母/NOLOGO/NOL隐藏版权信息/NONULLSDOSSEG/NON类似于/DOSSEG参数,但是在_TEXT段前不加额外的字节/NOPACKCODE/NOP对代码段不压缩/PACKCODE:number/PACKC:number将相邻的代码段合并压缩,指定的字节数用于设定物理段的最大值 。/PACKDATA:number/PACKD:number将相邻的数据段合并压缩,指定的字节数用于设定物理段的最大值 。仅用于windows/PAUSE/PAU链接过程中暂停以更换磁盘/PMTYPE:type/PM:type指定基于Windows的应用程序的类型。类型为PM表示是Windows API;类型为VIO表示是Windows Compat;类型为NOVIO表示不是Windows Compat;/QUICKLIBRARY/Q建立Quick Basic程序库/SEGMENTS:number/SE:number设置链接时的段总数,缺省值为127/STACK:number/ST:number设置栈段的最大字节数,不超过64K/TINY/T生成小模式的COM文件,与/INCR不兼容/?/?显示简要帮助信息下面将刚才用MASM.EXE汇编出来的目标程序进行链接。目标程序名称为HELLO.OBJ。输入“link hello;”指令,指令后的分号表示一切按缺省情况进行。运行后显示以下内容:Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992Copyright (C) Microsoft Corp 1984-1992. All rights reserved.LINK : warning L4021: no stack segment链接警告没有定义栈段,这不影响程序的运行。接下来可以运行HELLO.EXE,看看显示结果是不是“Hello, world.”。2.6. ML.EXE的使用ML.EXE的功能相当于MASM.EXE和LINK.EXE的总和,可以将汇编语言源程序汇编和链接后直接生成可执行文件。当环境参数配置好之后,在“命令提示符”窗口中键入“ML /?”指令,将显示出ML的参数表。ML的命令格式如下:ML /options filelist /link linkoptions 可选部分是ML的各种链接参数,/link linkoptions里设定的是链接参数,这些参数可以参照2.5 LINK的有关参数。filelist指定汇编源文件的名称,缺省的扩展名是ASM。可以有多个汇编源文件,文件之间用空格间隔。以下就各个链接参数逐个加以说明。参数名作用/AT Enable tiny model (.COM file)允许小模式(生成COM文件)/Bl Use alternate linker使用linker参数里指定的链接器/c Assemble without linking仅仅汇编不链接/Cp Preserve case of user identifiers区分用户标识符的大小写/Cu Map all identifiers to upper case将所有标识符映象为大写/Cx Preserve case in publics, externs区分公共标识符和外部标识符的大小写/D=text Define text macro用给定的名字定义文字宏/EP Output preprocessed listing to stdout生成预处理列表并输出至屏幕/F Set stack size (bytes)设置堆栈大小/Fbfile Generate bound executable生成限制性的可执行文件/Fe Name executable设置可执行文件的名称/Flfile Generate listing生成汇编代码列表文件/Fmfile Generate map生成链接映象文件/Fo Name object file设置目标文件的名称/FPi Generate 80x87 emulator encoding生成80x87模拟代码/Frfile Generate limited browser info生成源浏览文件(SBR)/FRfile Generate full browser info生成扩展源浏览文件(SBR)/G Generate Pascal or C calls指定汇编生成的调用格式。C:pascal类型D:C类型/H Set max external name length设置扩展名的最大长度/I Add include path添加include文件的目录/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汇编非ASM后缀的文件/VM Enable virtual memory启动虚拟存储器/w Same as /W0 /WX设置告警级别为0/WX Treat warnings as errors传回告警的错误码/W Set warning level设置告警级别(1、2、3)/X Ignore INCLUDE environment path忽略INCLUDE环境路径/Zd Add line number debug info在目标文件中产生CodeView列号/Zf Make all symbols public在目标文件中产生CodeView所有公共标识符/Zi Add symbolic debug info在目标文件中产生CodeView标识符/Zm Enable MASM 5.10 compatibility与MASM 5.10兼容/Zpn Set structure alignment排列结构数据的起始地址为n(1、2、4)的倍数/Zs Perform syntax check only只检查语法不产生目标文件下面使用ML.EXE对ASM文件进行汇编和链接。汇编文件的名称为HELLO.ASM。执行“ML hello.asm”指令,如无错误的话将生成可执行文件HELLO.EXE。Microsoft (R) Macro Assembler Version 6.00Copyright (C) Microsoft Corp 1981-1991. All rights reserved. Assembling: hello.asmMicrosoft (R) Segmented-Executable Linker Version 5.13Copyright (C) Microsoft Corp 1984-1991. All rights reserved.Object Modules .OBJ: hello.objRun File temp.exe: hello.exeList File NUL.MAP: NULLibraries .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,内容如下:code1segmentassume cs:code1, ds:code1start: jmpnextmsgdbHello, world.,0dh,0ah,$next:movax, csmovds, axmovdx, offset msgadddx, 100hmovah, 9int21hmovax, 4c00hint21hcode1 endsend start执行以下指令对源文件进行汇编:MASM HELLO2.ASM。执行以下指令将目标文件链接成COM文件:LINK /TINY HELLO2;。命令执行完毕后,将生成HELL2.COM文件,执行HELLO2观看运行结果。比较一下HELLO.EXE和HELL2.COM的大小,用DEBUG调试可执行程序HELLO2.COM,了解它的程序结构。=MASM 6.11的安装默认分类 2009-04-22 17:52:54 阅读98 评论0 字号:大中小订阅 一、安装前的准备工作1. 安装MASM 611的操作系统要求为Windows 98。2. 在D盘或别的硬盘上建一个文件夹。今假设在D盘上建立一个如下的文件夹:“Dxxxxxyyyyyy”,其中“xxxxx”是班级名,“yyyyyy”是本人姓名。3. 从教师机上下载文件夹“MASM611SETUP”及其内容,并放入文件夹“Dxxxxxyyyyyy”。4. 在文件夹“Dxxxxxyyyyyy”下建立一个如下的工作目录:“Dxxxxxyyyyyy mymasm”,以备将来在工作的时候存放MASM 6.11汇编语言源文件、目标文件、可执行文件。二、安装过程1. 打开MASM611SETUP文件夹,运行“Setup”。2. 在出现“Microsoft MASM 6.11 Setup”屏幕之后,按“ENTER”键。3. 在出现的“Microsoft MASM 611 Setup Main Menu”屏幕上,选中“Install the Microsoft Macro Assembler” ,按“ENTER”键。4. 在出现的“Microsoft MASM 6.11 Setup System Configuration”屏幕上,选中“MS-DOS/Microsoft WINDOWS”,按“ENTER”键。5. 在出现的“Microsoft MASM 6.11 Setup Microsoft Windows Files”屏幕上,对于“Install Files for Microsoft Windows?”,选中“Yes”,按“ENTER”键。6. 在出现的“Microsoft MASM 611 Setup Programmers Workbench”屏幕上,对于“Install PWB?”,选中“Yes”,按“ENTER”键。7. 在出现的“Microsoft MASM 6.11 Setup Brief Compatibility”屏幕上,对于“Install Brief Compatibility?”,选中“No”,按“ENTER”键。8. 在出现的“Microsoft MASM 6.11 Setup Mouse Driver”屏幕上,对于“Copy the Microsoft Mouse Driver?”,选中“Yes”,按“ENTER”键。9. 在出现的“Microsoft MASM 6.11 Setup MASEXE Utility” 屏幕上,对于“Install the MASM.EXE Utility?”,选中“Yes”,按“ENTER”键。10. 在出现的“Microsoft MASM 6.11 Setup Help Files”屏幕上,对于“Copy the Help Files?”,选中“Yes”,按“ENTER”键。11. 在出现的“Microsoft MASM 6.11 Setup Sample Programs” 屏幕上,对于“Copy the Sample Programs?”,选中“Yes”,按“ENTER”键。12. 在出现的“Microsoft MASM 6.11 Setup Destination Drive” 屏幕上,对于 “Please Select the Destination Drive”中所列出的硬盘驱动器,可任选其一,此处选中“Hard Drive D”,按“ENTER”键。13. 在出现的“Microsoft MASM 6.11 Setup Executable Files” 屏幕上,对于“DMASM611BIN”,不改变,按“ENTER”键。14. 在出现的“Microsoft MASM 6.11 Setup Library Files” 屏幕上,对于“D MASM611LIB”,不改变,按“ENTER”键。15. 在出现的“Microsoft MASM 6.11 Setup Include Files” 屏幕上,对于“D MASM611INCLUDE”,不改变,按“ENTER”键。16. 在出现的“Microsoft MASM 6.11 Setup Initialization Files” 屏幕上,对于“DMASM611INIT”,不改变,按“ENTER”键。17. 在出现的“Microsoft MASM 6.11 Setup Help Files” 屏幕上,对于“DMASM611HELP”,不改变,按“ENTER”键。18. 在出现的“Microsoft MASM 6.11 Setup Sample Files” 屏幕上,对于“DMASM611SAMPLES”,不改变,按“ENTER”键。19. 此后,出现“Microsoft MASM 6.11 Setup Confirm Your Choices”屏幕,列出了前面各步所做出的各项选择的清单,供用户校核。如果发现有选择不当的项目,依然可以进行修改。修改的方法是:先用箭头键选中欲修改的项目,按“ENTER”键,然后再用箭头键选中“Yes”或“No”,最后再按“ENTER”键。如果校核无误,可以按“ENTER”键,以给出确认信息。20. 此后,出现“Microsoft MASM 6.11 Setup Installing”屏幕,安装程序进行拷贝文件的操作,此时仅需等待一会儿。21. 拷贝文件操作结束之后,出现“Microsoft MASM 6.11 Setup Installation Complete”屏幕,按“CTRL+C”键,退出安装。5.2 MASM6.11的启动MASM 6.11的人机操作接口有两类窗口:一类是PWB(Programmers Work Bench)窗口,支持用户进行汇编语言源程序文件的编辑、汇编和链接操作。另一类是CodeView窗口,支持用户进行各种调试操作。MASM 6.11的启动过程是:首先启动PWB的主窗口,然后通过PWB的主窗口,再启动PWB的其他子窗口和启动CodeView类窗口。PWB主窗口的启动方法如下:1. 打开“DMASM611INIT”,把其中的文件“Tools.pre”改名为“Tools.ini”。2. 打开“DMASM611BIN”,运行其中的文件“PWB.EXE”,屏幕上即会出现PWB的主窗口。5.3 MASM6.11 PWB的设置通常在使用PWB以前,需要进行设置,请按以下过程对MASM 6.11 PWB进行设置:三、“Editor Settings”项目的设置在PWB的主窗口中,单击“Options”。然后,在弹出的选单上,单击“Editor Settings”。此后,会弹出“Editor Settings”窗口。接着,在“Editor Settings”窗口中,应进行开关“autosave”、“envcursave”和“envprojsave”的修改设置,即把它们由“no”改为“yes”,方法如下:1. 在“Switch List”项目下列出的开关清单上,单击欲修改设置的开关。2. 在“Switch”项目下,进行开关的状态修改,每次一个开关。3. 单击“Set Switch”。4. 重复A、B、C三步,直至把欲修改设置的开关全部完成为止。5. 单击“Save”。6. 在弹出的“Save Editor Settings”窗口中,检查“Modified Switches List”项目下所列出的开关清单应正确无误,之后单击“OK”。7. 单击“Editor Settings”窗口中的“OK”。8. 结束。四、“Environment Variables”项目的设置在PWB的主窗口中,单击“Options”。然后,在弹出的选单上,单击“Environment Variables”。此后,会弹出“Environment Variables”窗口。接着,在Environment Variables”窗口中,在原有的“PATH=”行上增加“Dmymasm”和“DMASM611BIN”两项,从而把原有的“PATH=”行修改为:PATH=Dmymasm;DMASM611BIN;CWINDOWS;CWINDOWSCOMMAND,其中的“Dmymasm”,为用户在启动PWB之前自建的工作目录。增加如下项目:LIB=DMASM611LIB,INCLUDE=DMASM611INCLUDE,INIT=DMASM611INITHELPFILES=DMASM611HELP*.HLP,ASMEX=DMASM611SAMPLES。修改和增加项目的方法如下:1. 在“Variable”项目下输入欲修改或增加的项目。2. 单击“Set Variable”。3. 重复A、B两步,直至欲修改和增加的项目全部完成为止。4. 单击“OK”。5. 结束。五、“Build Options”项目的设置在PWB的主窗口中,单击“Options”。然后,在弹出的选单上,单击“Build Options ”。此后,会弹出“Build Options ”窗口。接着,在“Build Options ”窗口中,选中“Use Debug Options”。单击“OK”。结束。=masm32v8.2的官方网站是=不用设置些什么选项,因为你刚开始学,不用包含些什么文件,直接用记事本写程序保存到你masm所在目录里,然后在msdos里masm 你的程序名;,然后link 程序名.obj;就可以了,在masm目录里就能找到你所编写的程序的可执行文件,masm611好像应该是ml,不是masm吧?我也不太清楚,因为我没用611,我用的是5.0的然后在bin文件家中找到masm.exelink.exe把他们复制到系统路径下即可 =家伙放在C盘的一个文件里,然后把文件路径加到系统环境变量path里,就可以直接在cmd里= 汇编语言masmwinasmmasm32分类: 汇编语言 前言MASM(Microsoft Macro Assembler)是微软推出的汇编语言编译器。因为他简单易用,开发环境容易搭建,用它作为汇编语言学习和对计算机组成原理的深入理解是非常合适的。它最新版本是MASM8.x系列。主要增加了x64(AMD64,Intel64/EM64T)架构处理器的支持。本教程仍然使用MASM6.x系列,目标架构是IA-32系列处理器。 阅读本教程您需要一些结构化计算机语言特别是C语言的经验。最好对计算机组成原理有一定的了解。 总的来说,汇编语言已经退出了编程第一线,任何可以用更高级语言如C语言实现的场合,应该选择更高级的语言。在一些特定的场合,汇编语言仍然有一定的用处,例如: 对程序中一些使用频率非常高的模块,用汇编语言来做优化。 逆向工程,分析无源代码的软件,包括病毒等等。 编写BIOSPCI BIOS,在操作系统引导之前的程序等CPU的实模式(real-address mode)程序。 深入理解计算机组成原理,理解程序被操作系统处理,被CPU执行的过程。 本教程需要您自己搭建一个开发环境,推荐MASM32搭配WinAsm。MASM32是一个开发包,包括了MASM用到的各种工具如程序的链接器等和一些例子程序以及帮助文档。他是非官方的,提供了一个完整的MASM的开发环境。WinAsm是一个IDE(集成开发环境,Integrated Development Environment)。他可以和MASM32集成在一起使用。第一章 大环境汇编语言很显著的特点是编程的时候,你必须时刻考虑到CPU处理你程序的过程。也就是它和具体硬件非常相关。所以,在了解汇编语言之前,有必要了解一下他大的执行环境。分为三节。 第一节,介绍汇编语言程序的执行环境。 第二节,介绍处理器的内存管理模式。 第三节,介绍汇编程序从编辑到运行的过程。 第一、二节对理解MASM语言非常有必要。不过,特别是CPU实模式下的编程。 第一节 汇编语言程序的执行环境。通常我们看CPU组成是分层次的,主要有三层:数字逻辑层(Digital Logic Level)、微内核层(Microarchitecture level)、ISA层(Instruction set Architectrue level)。ISA层里的各种组成元素就是一个汇编语言程序的执行环境。时下比较出名的ISA层的名字有:IA-32,x64,IA-64,SUN的SPARC,IBM的POWER等,这层是软件和硬件交互的标准,或者说一个接口。微内核层是CPU厂商用来实现特定ISA层的方法。这层比较见CPU厂商的功力,不同的实现方式会带来不同的性能。但它对软件是透明的。所以,不管微内核层怎么重新设计,只要ISA层兼容,都能保持软件的兼容性。比较出名的微内核层的名字有:Intel Pentium 4系列CPU的“Intel NetBurst Microarchitecture”和Intel最新Core系列CPU的“Intel Core Microarchitecture”IA-32 CPU的ISA层主要由如下组成: CPU操作模式(mode of operation) 内存地址空间(address space) 基本的程序执行寄存器 协处理器寄存器 MMX指令寄存器 栈(stack) 以上为基本元素,为普通程序使用,以下为系统级程序使用的比如操作系统: I/O端口 控制寄存器,也就是决定CPU操作模式的寄存器 内存管理寄存器 Debug寄存器 内存区域类型寄存器 等等。IA-32是所谓的CISC(复杂指令集计算机,complicated instruction set computer)架构的ISA。相对于RISC(精简指令集计算机,reduced instruction set computer,例如SUN的SPARC和IBM的POWER)来说,他的指令系统复杂而多。处理器的结构因而复杂,再加上为了兼容而提出的所谓操作模式,内存管理模式等等的概念使得对它的编程工作非常困难。所以掌握了对它的汇编程序的开发,别的系统,你会觉得非常轻松。提到IA-32,不得不提它的工作模式的概念。这个概念,初学者容易犯晕。IA-32有四个工作模式,其中两个要知道:保护模式(protectd mode)和实模式(real-address mode)。计算机为每个Byte的内存空间都定了一个地址。CPU的工作需要寻址,就是寻指令的相关参数的地址。而后到这个地址,把它们抓进CPU,配合指令来执行。16位CPU 8088实际20位地址线,可以寻址1M,可是寄存器是16位的。也就是说一个寄存器不足以确定一个物理地址。Intel提出了段(segment)的概念。把一个寻址过程分两步。或者说人为的把物理地址分成段。即:先指定一个段地址,而后指定在这个段里的偏移地址(offset)。此为段的第一个意义。这个意义下,段可以理解“为一个20位物理地址的前几位”。随着Intel CPU真的实现了32位,段的这个意义或者作用。不过为了兼容以前的程序,Intel提出了模式的概念,那就是为了兼容以前的16位的CPU,32位的CPU可以模拟成一个老CPU,这是32位CPU的实模式同时32位CPU还可以工作在另
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数轴 (3知识点+7大题型+过关测) 附答案-2025年人教版新七年级数学专项提升
- 人教版高考历史一轮复习讲义-冷战与国际格局的演变(含解析)
- CN120200489A 级联式变频器、控制方法及计算机可读存储介质
- 配音演员职业知识培训班课件
- 老师的业务知识和培训课件
- 老刀修面培训知识课件
- 配电网安全课课件
- 配电线路课件教学
- 老人与海鸥课件
- 配电箱基础知识培训课件
- 2025上半年教师资格考试(高中音乐)新版真题卷含答案
- 2025年中国蛋白肽市场现状分析及前景预测报告
- 幼儿大班如厕教学课件
- 2025年智慧城市产业园区开发建设社会稳定风险评估与风险防范对策报告
- 《医疗机构工作人员廉洁从业九项准则》解读
- Axure RP 互联网产品原型设计课件 第10章 团队合作与输出
- 《支架外固定的护理》课件
- 环氧地坪维修施工方案
- 农村公路养护管理讲座
- 以房抵债协议书二零二五年
- 部编人教版道德与法治4年级上册全册教学课件
评论
0/150
提交评论