实验一 认识汇编语言1.1 实验目的(1)理解汇编语言的概念及其与高级语言的区别(2)了解MASM6.11和TASM软件包的安装及配置(3)了解常用汇编语言集成环境(4)掌握汇编语言程序的上机过程1.2 预备知识1.2.1 系统环境对汇编语言的初学者来说,DOS环境的优点是:DOS操作系统简单,程序员可以管理系统的所有资源,访问和修改系统中的所有内存(包括内存控制块、中断向量表),直接对I/O端口进行读写,便于对知识的学习和理解。
其缺点是:单任务的DOS操作系统只有一个运行级别,任何进程与DOS操作系统都是同等级别的,致使系统中各个进程会相互影响。
如果某个进程死机,整个系统就会瘫痪。
但是DOS系统已经退出历史舞台,目前的学生只熟悉Windows环境而对DOS知之甚少,继续要求学生在DOS系统的命令行界面下编写和调试程序,无疑存在巨大的困难。
目前,IBM PC及其兼容机配置的Intel系列微处理器可以工作在实模式、保护模式和虚拟86三种模式下。
实模式是汇编语言入门的基础,是汇编语言教学中无法跨越的阶段。
了解实模式是理解内存分段式管理和寻址方式的基础。
保护模式是Windows系统的工作模式,虚拟86模式则是在保护模式下提供的模拟8086处理器工作的模式,为学习汇编语言提供了便利。
DOS汇编程序在Win32环境中运行时,操作系统会模拟实模式运行16位进程。
对于一些可能会影响整个操作系统工作的指令,windows操作系统会拒绝执行。
64位的Windows 环境则不提供16位应用的虚拟环境。
因此,采用Win32环境进行汇编语言程序的编辑工作,在虚拟控制台环境中学习(汇编、连接和调试)汇编语言是最佳方案。
下面我们将逐步给大家讲解如何安装和配置汇编语言的编译调试环境,并选择适合的编辑软件来组建汇编语言的集成环境。
最后,叙述如何使用Visual Studio 2008 Express作为汇编语言的工作环境。
1.2.2 汇编语言上机过程汇编语言程序需要经过编辑、汇编、连接、调试与执行等过程才能实现其具体功能。
图1-1说明了汇编语言的上机过程。
第一步:编辑使用编辑软件创建和编写汇编语言源文件,并以 .asm 作为文件名后缀。
第二步:汇编使用汇编程序将源程序翻译成机器码形式的文件,以 .obj 为后缀的目标程序。
汇编包括把源程序翻译成目标代码,并产生中间的.OBJ文件或模块。
汇编程序的任务是为数据段中的每个数据项和代码段中的每条指令计算偏移值,并在所产生的.OBJ模块的前面直接建立一个头部来存储不确定的地址信息。
在汇编时可以选择产生列表文件(.LST)和交叉引用文件(.CRF)。
列表文件含有出错诊断信息,可以用来帮助检查源程序中的错误。
交叉引用文件在编写大型程序时可以提供指令引用的数据项列表。
第三步:连接使用连接程序完成对于目标程序的装配工作,生成可执行程序,以.exe或者.com为后缀的执行文件。
连接程序的任务包括确定由汇编程序遗留下来的不确定的地址,并把分别汇编的程序组合成一个可执行文件。
第四步:调试运行使用调试程序完成调试改错的过程,并在DOS提示符下运行。
执行是最终目的,系统的装入程序负责将可执行文件.EXE装入到存储器中,并最后确定任何无法确定的地址。
图1-1 汇编语言上机过程1.2.3 常用汇编语言工具常用的汇编语言工具有:(1)Microsoft公司的宏汇编语言系列,如MASM5.0、MASM6.11、MASM6.13、MASM6.15,Visual Studio等。
(2)Borland公司的Turbo 汇编工具系列TASM。
(3)开源软件nasm,可以编译跨平台应用程序。
(4)汇编语言开发者自行组装的Win32开发软件包MASM32。
1.2.4 常用编辑软件(1)PWB在DOS环境下,MASM6.11软件包中提供了一个集成开发环境PWB,可以实现程序编辑、编译和调试工作。
在Windows环境中,MASM和TASM两者都没有专用的汇编语言编辑软件。
(2)Notepad记事本在Windows系统环境下编写汇编语言程序,可以采用Windows自带的Notepad记事本程序。
但需要注意的是,由于Notepad默认编写文本文件,扩展名采用.txt命名。
所以,Notepad 经常自动在已经命名的汇编语言源文件(.asm)后额外添加.txt后缀,引起编译时的问题。
建议使用安装NotePad++替代。
(3)EditplusEditPlus是一款可以处理文本、HTML页面以及程序语言格式的32位编辑器,可以完全取代Notepad记事本工具。
EditPlus可以编辑多种类型的文件,例如HTML、XML、ASP、C/C++、Perl、Java等;提供多窗口功能,可以在工作区中打开多个文档;可以根据语言的语法自动识别关键字、标识符、字符串等内容,并用不同的颜色区别显示,提高输入效率,减少输入错误。
要想实现汇编语言的语法识别可以下载并导入汇编语言的语法文件。
虽然EditPlus只是一个编辑软件,但是可以通过设置外挂来配置为汇编语言的集成开发环境。
(4)UltraEditUltraEdit是一个与EditPlus功能类似的编辑软件,也可以通过配置使之成为汇编语言的集成环境。
它的优点是可以对二进制文件进行编辑。
1.2.5 常用集成环境1.MASMPlus2.MASMEDITMasmEdit是一个国内开发人员编写的自由软件,用于汇编语言教学。
其主要特点:(1)自动定时保存文件,可设定定时间隔(2)多文件同时编辑,用剪贴板在多个文件之间交换代码(3)内部集成编译器,无需自行安装MASM和TASM(4)保存上次操作时的一切设置注意事项:安装在符合DOS要求的目录下,汇编语言源文件也要存储在纯DOS目录下。
3.Visual StudioVisual Studio是微软公司的开发工具集成环境。
虽然其中没有提供MASM的开发,但是将其集成在Visual Studio产品中。
通过为Visual C++环境进行配置可以作为汇编语言的学习和工作环境。
1.3 汇编环境安装1.3.1 MASM6.11的安装MASM6.11是微软公司的成熟、稳定、功能强大、操作简便的汇编语言编译工具环境。
在可操作性方面,与MASM5.0相比它增加了集成环境,使用更方便。
下面介绍其安装过程。
首先,准备汇编语言工具包软件,将其存储在移动介质中(软盘或USB存储设备)或者复制到本地硬盘中(例如硬盘D的MASM611目录中)。
下面以硬盘操作为例讲解操作过程。
切记保存工具包的目录名要使用英文形式以便于在DOS模式下访问。
然后,进入DOS运行模式。
启动开始菜单中的运行功能,在输入框中键入cmd或者command,单击确定按钮,打开DOS模式工作窗口(如图1-2)。
在“命令提示符下”输入D:\和CD \MASM611命令,切换工作路径到汇编工具包软件目录下。
图1-2 进入DOS运行模式步骤1:启动安装在“命令提示符”下运行setup.exe安装程序(或者直接鼠标点击setup.exe程序),启动MASM安装程序如图1-3所示。
图1-3 启动安装程序步骤2:进入主菜单按回车键进入主菜单窗口(如图1-4所示),选择“Install the Microsoft Macro Assembler”菜单项开始安装宏汇编软件。
图1-4 安装主菜单步骤3:选择安装项目根据你使用的操作系统及安装需要选择后续各项配置。
建议按下面方案进行选择(如图1-5):“DOS/Windows & NT”、“安装Windows文件”、“安装PWB”、“安装Brief compatibility”、“安装Microsoft Mouse Driver”、“安装MASM.EXE”、“安装帮助文件”、“安装编程例子”。
图1-5 系统配置步骤4:安装路径选择由于大多数教学机房都已经安装了还原卡,在操作时应选择未被保护的驱动器,此处选择D驱动器为目的驱动器(如图1-6)。
软件安装的目录建议采用默认设置。
相关子目录说明如下:z Windows NT环境的执行文件将安装在 BIN子目录中;z DOS环境的执行文件将安装在BINR子目录下z库文件将安装在LIB子目录中z包含文件将安装在INLCUDE子目录下z PWD和CodeView的初始化文件安装在INIT子目录中z帮助文件安装在HELP子目录中z编程实例安装在SAMPLES子目录下图1-6 选择安装位置步骤5:开始安装按回车键选择“NO CHANGES”菜单项开始安装(图1-7)。
当出现“Installation Complete”窗口时,软件安装完成。
图1-7 开始安装步骤6:环境设置按回车键进入环境设置窗口(图1-8),安装程序给出“环境设置”,提示用户如何在DOS环境中修改计算机系统中有关配置文件。
注意:请同学记住各配置文件的用途和存放位置,便于下面配置操作。
NEW-V ARS.BAT和NEW-CONFIG.SYS文件的内容是DOS系统下的设备驱动和自动启动文件中应包含的内容。
在Windows XP操作系统中,需要在系统的环境变量设置窗口中设置各项内容。
按如下操作:“我的电脑图标”点击右键-〉选择属性-〉高级选项卡-〉环境变量按钮-〉系统变量-〉新建。
将NEW-V ARS.BAT文件中的每行信息按照图1-9编辑系统变量窗口所示进行设置。
图1-8 环境设置提示图1-9 配置环境变量PWB环境变量的设置,需要将TOOLS.PRE文件改名为TOOLS.INI或者将内容合并如TOOLS.INI文件。
内容设置,对于Windows环境来说无需修改,但对于纯DOS环境来说需要按照说明设置。
也可以安装如下内容准备DOS窗口中的环境设置批处理文件。
1.模拟DOS环境批处理文件DOS16.BAT@ECHO OFFSET PATH=C:\MASM611\BIN;C:\MASM611\BINR;%PATH%SET LIB=C:\MASM611\LIBSET INCLUDE=C:\MASM611\INCLUDESET INIT=C:\MASM611\INITSET HELPFILES=C:\MASM611\HELP\*.HLPSET ASMEX=C:\MASM611\SAMPLESSET TMP=C:\WINDOWS\TEMP%SystemRoot%\System32\@ECHO ON2.Win32控制台环境批处理文件WIN32.BAT@ECHO OFFSET PATH=C:\MASM611\BIN;C:\MASM611\BINR;%PATH%SET LIB=C:\MASM611\LIBSET INCLUDE=C:\MASM611\INCLUDESET INIT=C:\MASM611\INITSET HELPFILES=C:\MASM611\HELP\*.HLPSET ASMEX=C:\MASM611\SAMPLESSET TMP=C:\WINDOWS\TEMP%SystemRoot%\System32\cmd.exe@ECHO ON步骤7:退出安装在主菜单窗口中选择“Exit SETUP”退出安装程序。