ImageVerifierCode 换一换
格式:DOC , 页数:14 ,大小:1.07MB ,
资源ID:4697075      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-4697075.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编语言编程工具的介绍.doc)为本站会员(杨桃文库)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

汇编语言编程工具的介绍.doc

1、1附录1 汇编语言编程和调试工具一、汇编语言编程工具学习汇编语言的目的就是要用汇编语言编程来解决实际问题,下面介绍二种常用的汇编语言编程环境:宏汇编MASM 6.11和Turbo Assember 5.0。1.1、宏汇编MASM 系统在宏汇编MASM 系统中,程序员可用二种方法来处理源程序:命令行和集成环境。1.1.1 命令行命令1、 编写源程序可用计算机系统中各种能编辑文本文件的编辑器来编辑汇编源程序。常用的编辑器有:EDIT、Q、Word、记事本、写字板、 WPS等。源文件的后缀为:.ASM。2、 汇编程序当源程序编写好后,可用MASM命令来汇编该源程序。如果源程序没有语法错误,那么,将生

2、成目标文件(.OBJ文件) ,为最终生成可执行文件作准备,但如果源程序有错误,汇编程序将显示出错误位置和原因,也可用列表文件(.LST文件)来查看出错位置和原因。下面给出一些使用该命令的实例情况。例1.1:查看MASM命令的功能masm /?(*)/Zi Generate symbolic information for CodeView/Zd Generate line-number information其中:选项/Zi和/Zd 是经常被引用的二个选项,因为它们与符号跟踪有关。例1.2:用MASM命令汇编源程序masm testInvoking: ML.EXE /I. /Zm /c tes

3、t.asmAssembling: test.asm如果MASM命令显示了类似如上的处理结果,那么,表示源文件TEST.ASM 已成功汇编,并已生成了其目标文件TEST.OBJ。(*) 用户输入的命令用“下划线”来表示,系统显示的内容没有“下划线” 。以下与此相同。2例1.3:用MASM命令汇编源程序masm testInvoking: ML.EXE /I. /Zm /c test.asmAssembling: test.asmtest.asm(10): error A2070: invalid instruction operands如果MASM命令显示了类似如上的处理结果,那么,表示源文件有

4、错,没有生成其目标文件。在本例中,显示第10行有语法错:非法的指令操作数 。这时,要用编辑器阅读源程序的第10行,看看输入指令时是否有误。假如源程序有许多错误,很难记住全部出错位置,那么,可用列表文件来辅助查错。例1.4:在汇编源程序的同时,生成其列表文件。masm test, ,testAssembling: test.asmtest.asm(10): error A2070: invalid instruction operands列表文件TEST.LST是一个文本文件,可用编辑器直接阅读,并可看出其错误的位置和原因。下面是一个列表文件的实例。edit test.lstMicrosoft

5、(R) Macro Assembler Version 6.11 08/26/00 18:42:57test.asm Page 1 - 1.model small.4860000 .data.radix 70000 2A 08 0F w2 db 60,11,180003 000A 0009 w1 dw 10T, 1001B0000 .code.startupmov dl, 7777htest.asm(10): error A2070: invalid instruction operands0010 8B C2 mov ax, dx0012 0F A4 C2 01 shld dx, ax, 1

6、0016 D1 D0 rcl ax, 1.exit 0end在此后面还有其它内容,但它们对查错没有帮助,所以,在此省略。33、 连接程序当由源文件汇编成功后,即可用连接程序(LINK.EXE )生成其可执行文件。例1.5:查看连接程序(LINK.EXE) 的具体选项。link /?LINK ,Valid options are:/? /ALIGNMENT/BATCH /CODEVIEW/STACK /TINY/WARNFIXUP例1.6:用连接程序生成执行文件。方法1:link testRun File test.exe:List File nul.map:Libraries .lib:Def

7、initions File nul.def:LINK : warning L4021: no stack segment这种方法需要确认连接过程中的各种文件名,如果使用文件名的默认值,那么直接按“回车”键即可。在上面四个文件名中,最重要二个文件名是:执行文件名和库文件名。一般情况下,无需更换最终生成的执行文件名;如果在连接过程中需要其它的库文件,则在显示第三行提示时,输入所需要的库文件名。最后一行显示一个警告信息,提出本程序没有定义堆栈段,该警告信息可以不必理会,因为该执行文件是可运行的,在操作系统装入时会自动为其添加一个默认的堆栈段。方法2:在文件名后面加上分号“;” ,默认使用各类文件的缺

8、省值。link test;LINK : warning L4021: no stack segment4、 运行程序当要运行所生成文件时,可直接输入其文件名即可。test5、 符号调试程序当程序的运行结果不是预期结果时,就需要调试程序,找出错误的语句或逻辑关系。MASM系统提供了可用于源程序一级的调试工具CV( CodeView)。有关CV的使用参见“调试工具”中CodeView的介绍。4例1.7:用符号调试工具CV来调试程序TEST.ASM所生成可执行文件。masm /Zi /Zd test ;假设其没有语法错link /Co testcv test.exe1.1.2 编程集成环境 PWBP

9、WB(Programmers WorkBench)是MASM 6.11提供的编程集成环境,在此环境下,程序员可直接编写源程序、汇编、连接和运行。 在汇编源程序时,如果有错误,系统将列举出所有出错位置和出错原因。还可用Shife+F3和Shife+F4来定位前一个错误和后一个错误; 在连接时,可指定堆栈的大小、附加的库文件、符号跟踪等选项; 在运行时,可设置命令行参数、直接运行、按调试方式运行、用DOS命令来运行等。例1.8:查看PWB的启动方式pwb /?Usage: PWB /DS|T|A. Disable CURRENT.STS, TOOLS.INI, Autoload/PP|F Set

10、PWB or Foreign Program List/PL Set Last Program List/E Execute commands/M Start at mark/R Read-only mode/T . (Temporary) file to open通常情况下,在PWB后面跟一个将要编辑的源文件名。假如要编辑源文件TEST.ASM,那么,可直接输入下面命令:pwb test.asm1、 编辑源文件PWB的编辑功能与许多编辑器的功能类似,有:建立新文件、保存文件、另存为、光标移动功能、块操作、插入/ 删除操作、恢复操作、查找/替换操作、设置编辑器的功能键和各类颜色等。要想了解更全

11、面的编辑功能,可查看菜单:File、Edit、Search和Options的前四个菜单项。在画面1.1( Options菜单中的“Colors”) 中,可选择各类窗口、菜单和文本等对象的背景色和前景色。比如:当要改变源程序的显示颜色时,可先在左边的列表框中选择“Text”列表项,然后再选择其背景色和前景色。52、 汇编和连接文件画面 1.1 设置编辑器各类颜色的画面在集成环境下,源程序的汇编和连接是一次性完成的。当汇编任务结束,并且没有产生错误信息时,连接程序立即开始连接工作。但如果源文件有错,则显示所有错误位置和原因,连接程序不会被执行。在浏览错误信息时,可用Shife+F3和Shife+F

12、4来定位前一个错误和后一个错误。在连接时,如果需要某个库文件,那么,可选用Options菜单中的“Link Options”菜单项来设置,该菜单项的显示画面如画面1.2所示画面1.2 连接选项的部分设置画面在该画面上还可为程序设置一个缺省的堆栈段,其大小也可由用户自行决定。当生成执行文件需要多个模块连接时,就需要建立一个工程文件(.MAK )。建立工程文件的步骤和画面如下:(1)、输入工程文件名,其默认的后缀为 .MAK。输入画面如画面1.3所示在画面1.3中还可选择工程目标文件的类型,该类型有:6EXE、COM、LIB 、Windows的EXE 或DLL等二十几种。当然,对每种类型又有一些不

13、同的要求,在此不在进一步展开叙述了。通常情况下,不必选择目标文件类型,其缺省类型就是DOS EXE。画面1.3 建立工程文件名的画面(2)、工程文件的编辑在画面1.3中输入工程文件名,并且按 “OK”按钮时,系统将进入画面1.4 ,在该画面中可向当前工程中添加源程序,也可把某源程序从当前工程中删除。画面1.4 、编辑工程文件的画面当输入的文件名不在工程文件中,则把该源文件添加到工程文件中,否则,将其从工程文件中删除。当所有源文件都添加到工程文件中时,可按“Save List”来保存该工程文件。此后就可用打开工程文件的方式来连接该工程中的文件。如果需要修改工程文件的话,则可先用Project 菜

14、单中的“Open Project”菜单项打开工程文件,再用“Edit Project”菜单项来激活画面1.4 进行编辑。3、 运行程序在运行程序时,可设置命令行参数、直接运行、按调试方式运行、用DOS命令来运行等。通常情况下,在编写程序的初期,一般都用“调试方式”来运行程序。当选用这种方式时,系统会自动进入CV(CodeView) 的调试环境。有关 CV的使用参见“调试工具”中7CodeView的介绍。4、 符号调试的设置步骤编写程序很难做到:编辑、汇编、连接、运行一次完成,除非程序的功能非常简单。当运行的结果不符合要求时,就需要跟踪程序的运行。一般来说,跟踪程序执行的工作又称为调试程序,即找

15、出程序中不正常的逻辑关系和语句。常用的调试手段有二种:执行代码的调试和符号调试。前者是在没有任何源程序信息的情况下进行的调试,其工作难度大、效率低,后者是源程序一级上进行的调试,其目标代码的执行过程就象是源程序的执行,这种调试手段效率高、调试难度低,也是目前最流行的调试手段(在各种编程环境下都有类似的调试工具) 。为了能进行符号调试,需要告诉汇编程序和连接程序保留源程序中的各种符号信息。为此,可通过下面三步来设置一些命令选项。(1)、设置生成选项选择Options菜单中的“Build Options”菜单项,显示出画面 1.5,并选择其中的“Use Debug Options”选项。画面1.5

16、 、设置生成选项的画面(2)、设置汇编命令的选项选择Options菜单中的“Project Templates”“Customize Project Template”菜单项,显示出画面1.6。画面 1.6、修改汇编命令选项的画面在该画面的“Build Rule List”列表框中选择“macro AFLAGS_D “”,并把它修改8为“macro AFLAGS_D “/Zi /Zd”。(3)、设置连接命令的选项选择Options菜单中的“Link Options”菜单项,与画面 1.2所对应的是同一个画面,在此所要的部分画面如画面1.7 所示,并选择“CodeView ”选项。画面 1.7、

17、连接过程选项的部分设置画面经过上面三步设置后,在PWB环境下,用Run菜单中的“ Debug”菜单项就可进行符号调试了。1.1.3 MASM的安装宏汇编系统MASM 6.11共有5张软盘:Disk1Disk5 。在Disk1 中运行Setup.exe文件即启动系统的安装过程。其安装过程与许多系统的安装大同小异,只有用户根据屏幕提示作适当的选择即可,所以,在此省略系统安装具体步骤的描述。1.2、 Turbo AssemberTurbo Assenmer系统是Borland C+程序设计系统的一部分,可有选择地安装它。该汇编系统有三个主要文件:TASM.EXE、TLINK.EXE、TD.EXE和T

18、D32.EXE,其中:TD.EXE是16位程序的调试器,它只能显示16位寄存器,而 TD32.EXE是32位程序的调试器。有关它们的显示画面请参见画面2.2和2.3 。Turbo Assenmer系统在汇编语言程序设计方面主要采用命令行的形式,当用其它文本编辑器编写好源程序(后缀为: .ASM)后,即可用TASM和TLINK文件来处理它。1、 汇编源程序TASM.EXE 16-bit real-mode assemblerTASMX.EXE 16-bit protected-mode assemblerTASM32.EXE 32-bit protected-mode assembler例1.9

19、 查看TASM的功能选项tasm /?/zi,/zd,/zn Debug info: zi=full, zd=line numbers only, zn=none例1.10 汇编已有源程序 TEST.ASMtasm test假如源文件TEST.ASM有语法错的话,可用下面命令来生成其列表文件 TEST.LST。9tasm test,testtype test.lst | more假如源文件没有语法错,那么可用TLINK.EXE连接它,以生成可执行文件。2、 连接程序例1.11 查看TLINK的功能选项tlink /?/n Ignore default libraries /f Inhibit

20、optimizing far calls to near/v Full symbolic debug information /Gx Goodies例1.12 连接汇编得到的目标文件TEST.OBJtlink test3、 符号调试程序当程序的运行结果不是预期结果时,就需要调试程序,找出错误的语句或逻辑关系。Turbo Assember系统提供了可用于源程序一级的调试工具TD/TD32(Turbo Debuger)。有关TD 的使用参见“调试工具 ”中Turbo Debuger的介绍。例1.13:用符号调试工具 TD来调试程序TEST.ASM所生成可执行文件。tasm /Zi /Zd test

21、 ;假设其没有语法错tlink /v testtd test.exe二、调试工具2.1、 DEBUG启动DEBUG的一般命令如下:DEBUG 文件名 参数表其中:文件名指定被调试的文件,其包括名和后缀,参数表是被调试文件运行时所需要的参数。被调试的文件可以是系统中的任何文件,但通常它们的后缀为.EXE或.COM。当DEBUG启动成功后,将显示连接符“-” ,这时,可输入各种 DEBUG命令。DEBUG中标志位的符号表示如表1所示,其所有命令及其含义如表2所示。关于参数的几点说明:1. 进制:在DEBUG中输入或显示的数据都是十六进制形式表1 DEBUG中标志位的符号表示10标志名称 溢出 OF

22、 方向 DF 中断 IF 负号 SF 零ZF 辅助进位 AF 奇偶 PF 进位 CF置位状态 OV DN EI NG ZR AC PE CY复位状态 NV UP DI PL NZ NA PO NC表2 DEBUG命令及其含义命令格式 功能说明A 地址 输入汇编指令C 范围 起始地址 对由“范围”指定的区域与“起始地址”指定的同大小区域进行比较,显示不相同的单元D 范围 显示指定范围内的内存单元内容E 地址 字节值表 用值表中的值替换从“地址”开始的内存单元内容F 范围 字节值表 用指定的字节值表来填充内存区域G =起始地址 断点地址 从起点(或当前地点)开始执行,到终点结束H 数值1 数值2

23、显示二个十六进制数值之和、差I 端口地址 从端口输入L 地址 驱动器号 扇区 扇区数 从磁盘读M 范围 地址 把“范围”内的字节值传送到从“地址”开始的单元N 文件标识符 文件标识符 指定文件名,为读/写文件做准备O 端口地址 字节值 向端口输出P =地址 指令数 按执行过程,但不进入子程序调用或软中断Q 退出DEBUG,不保存正在调试的文件R 寄存器名 显示和修改寄存器内容S 范围 字节值表 在内存区域内搜索指定的字节值表。如果找到,显示起始地址,否则,什么也不显示T =地址 指令数 跟踪执行,从起点(或当前地点)执行若干条指令U 范围 反汇编,显示机器码所对应的汇编指令W 地址 驱动器号

24、扇区 扇区数 向磁盘写内容,(BX、CX)为写入字节数2. 分隔:命令和参数、参数和参数之间要用空格、逗号或制表符等分隔3. 地址:用“段值:偏移量”的形式来表示地址,也可用段寄存器来代表“段值”例如:1000:0 , ds:10,es:200,cs:30 等4. 范围:用来表示地址范围,从哪个地址开始,到哪个地址结束。它有二种表示方式: 地址 地址前者表示起始地址,要用“段值:偏移量”来表达,后者表示终止地址,只用“偏移量”来表示 地址 长度前者表示起始地址,要用“段值:偏移量”来表达,后者表示该区域的大小,用字母L开头的数值来表示例如:100:50 100段值为100 ,偏移量从50 到1

25、00 的内存区域,11100:50 L100段值为100,偏移量从50开始的100个字节区域。5. 端口地址:二位十六进制数值6. 字节值:二位十六进制数值7. 字节值表:由若干个字节值组成,也可以是用引号括起来的字符串8. 驱动器号:0驱动器A、 1驱动器B 、2驱动器C 、 3驱动器D 等关于使用命令的几点说明:1. 在DEBUG中的提示符“-”下才能输入命令,在按“ 回车”键后,该命令才开始执行2. 命令是单个字母,命令和参数的大小写可混合输入3. 可用F1、F2、F3 、Ins、Del 、左移键、右移键等编辑键来编辑本行命令4. 当命令出现语法错误时,将在出错位置显示“ Error”5

26、. 可用C或Break 来终止当前命令的执行,还可用S来暂停屏幕显示( 当连续不断地显示信息时)例2.1:启动DEBUG,并装入test.exe文件(假设该文件已存在)。解:方法1:debug test.exe方法2:debug-n test.exe-l例2.2:比较以DS为段值,偏移量从10 到50的内存区域与从地址 100:20开始的内存区域。解:-C DS:10 50 100:20 或 -C DS:10 L41 100:20例2.3:显示以DS为段值,偏移量从10 到50内存区域的单元内容,然后用 abc来填充它。解:-D DS:10 50 或 -D DS:10 L41-F DS:10

27、50 abc例2.4:显示十六进制1234与 3421之和、差。解:-H 1234 4321例2.5:把数据段区域DS:0-40内的内容传送给从附加段ES:10 开始的内存中。解:-M DS:0 40 ES:10例2.6:在数据段区域DS:0-40内查找是否有字符串CIH。解:-S DS:0 40 CIH122.2、 CodeViewCodeView是一个简单、直观的全屏幕调试工具,它可调试多种语言的源程序所生成的执行代码。CodeView的调试窗口如画面2.1所示。画面的左上窗口是调试器的主窗口,其显示被调试的源程序或执行代码,左下窗口是命令窗口,用户可输入各种DEBUG命令,右窗口是显示寄

28、存器窗口,它可显示16位和32位寄存器的内容。当然还有其它窗口,如:内存窗口、查看内容窗口(Watch) 和程序输出窗口( View)等。画面 2.1 CodeView调试器的显示画面1、功能键F2:显示/隐含的寄存器组窗口F3:以不同的显示方式显示当前执行的程序F4:显示程序的输出屏幕F5:执行到下一个逻辑断点,或到程序尾F6:依次进入当前屏幕所显示的窗口F7:与F5 功能相同F8:单步执行指令,并进入被调用的子程序F9:在源程序行中设置/取消断点,用鼠标左键双击之也可F10:单步执行指令,但不进入被调用的子程序2、命令窗口在该窗口中,可输入前面介绍的DEBUG命令。133、寄存器组窗口可以直接在寄存器组窗口内修改各寄存器的内容和各标志位,还可以用Options菜单中的“32-Bit Registers”菜单项来切换16位和32位寄存器。2.3、 Turbo DebugerTurbo Debuger的主要窗口和调试功能键与CV非常类似,也可以单步执行、设置断点、显示寄存器内容和查看内存内容等。具体操作由读者在实际的调试过程中掌握、体会。画面2.2和2.3是Turbo Assember系统中16位和32位调试器的主要显示画面。画面2.2 TD调试器的显示画面1画面2.3 TD32调试器的显示画面

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报