汇编语言部分 实验
实验一 Turbo Debug使用简介
着重介绍如何使用集成环境Turbo Debug来对程序进行调试。
◆ TD的命令行格式
TD.EXE程序是DOS应用程序,用命令行方式运行,TD的DOS命令行格式为:
TD [option] [program_name [program_args]]
[]中的内容表示可选项,可有可无,根据具体情况选择。[option]可以是下面任意一项或几项的组合,视具体调试要求而定;program_name是待调试的文件,默认的后缀名是.EXE。
program_args是待调试程序所需的入口参数。注意option中的命令只能放在调试程序名的前面,即program_name的前面。
TD命令选项参数包括一个连字符“-”,后面跟一个或多个字母及一个文字或数字变量。TD命令由配置文件的默认设置。要使配置文件中对TD命令的设置无效,需在命令后再加一个连字符“-”。如:td -c- mypro arg1 arg2。各选项功能如表1-1所示。
表1-1 TD选项功能表
选项 | 功能 | 备注 |
-c<file> | 使用配置文件 | |
-do,-dp,-ds | 屏幕更新:do=另外显示,dp=翻页,ds=屏幕切换 | |
-h,-? | 显示帮助信息屏 | |
-i | 允许处理本身的转换 | |
-k | 允许击键记录 | |
-l | 汇编程序启动,并显示汇编命令,但是不对起始命令进行编译。 | |
-m<#> | 设置堆栈段大小,#应该是具体数字,如<8>表示堆栈段为8K字节 | |
-p | 鼠标支持 | |
-r | 使用串行口远程调试,低速 | |
-rn<L;R> | 用本地计算机L和远程的计算机R通过网络调试 | |
-rp<#> | 为远程连接设置串行通信口COM #,#应该是1或2。 | |
-rs<#> | 远程连接通信速度:1=最慢速,2=慢速,3=中速,4=快速 | |
-sc | 禁止检查标识符 | |
-sd<dir> | 源文件目录<列表> | |
-sm<#> | 设置备用标识符存储空间大小,#应该是具体数字表示#K字节(最大256KB),如<8>表示备用标识符存储空间为8K字节 | |
-vg | 全屏幕保存 | |
-vn | 43/50行显示选项禁止 | |
-vp | 允许EGA/VGA调板设置参数保存 | |
-w | 调试远程的Windows程序(必须同时使用-r) | |
-y<#> | 用#KB(千字节)设置覆盖区域空间大小 | |
-ye<#> | 用16KB/页为单位来设置扩展内存覆盖区域空间大小,#应该是具体数字 | |
待调试的文件名是填写被调试的可执行程序名,该程序名同样可带可不带,因为在TD环境中有打开一个调试文件的菜单对话框,通过这个对话框来选择被调试的程序(详见TD的菜单功能介绍)。如果待调试的程序名,表示你所编写的源程序exp0.asm经过汇编、连接后产生的可执行程序,命令行格式为:,其中表示回车键。如果不与TD.exe在同一文件夹中,则根据当前路径书写,当前路径在td.exe,如果在E:\MYFILE文件夹中,则命令行格式为td e:\;当前路径在,如果td.exe在E:\BC\BIN文件夹中,则命令行格式为e:\bc\bin\。或者用PATH命令设置路径随便在哪个路径下可运行,具体参看实验四。
可执行程序附带参数要根据你设计的程序需要与否来填写,例如Win2000中有一个目录树显示文件tree(假设Win2000安装在C盘),调试该程序可以使用如下方式:
1) 不带参数为td c:\winnt\system32\tree表示调试tree程序,结果仅为目录数,按ASCII字符及图形来显示;
2) 带/f为td c:\winnt\system32\tree /f表示调试tree程序,结果不仅有目录树,并且还包括目录下的文件,按ASCII字符及图形来显示;
3) 带/a为td c:\winnt\system32\tree /a表示调试tree程序,结果仅为目录数,按ASCII字符及扩展字符来显示;
4) 带/f /a为td c:\winnt\system32\tree /f /a表示调试tree程序,不仅有目录树,并且还包括目录下的文件,按ASCII字符及扩展字符来显示;
5) 带/?为td c:\winnt\system32\tree /?帮助信息显示在屏幕上。
◆ 运行TD的方法
运行TD的方法主要介绍2种,具体方法如下:
1、 WINDOWS下操作系统启动方法
目前通用微机普遍采用WINDOWS系列操作系统,如Win9x、Win2000、WinXP、WinME、NT等,以Win2000为例,首先打开存有TD.EXE的文件夹,如e:\bc\bin文件夹中有TD.EXE,打开本地磁盘(E:)中的BC文件夹下的BIN文件夹,到TD.EXE点击鼠标右键并且移动鼠标到属性(R)再击左键,弹出TD属性中的常规窗,鼠标点击得到图1-1所示的程
序对话框。图1-1所示的命令行(L)表示运行该程序及其所在路径,可以按要求在其后加选择项、被调试程序文件名及其所需的附带参数,例如E:\BC\BIN\TD.EXE EXP0.EXE表示运行TD调试缺省路径文件夹的程序。由于TD是DOS程序,故要求各级路径及被调试程序文件名均不超过8个ASCII字符,最好不带汉字及全角的字符。工作目录(W)表示进入TD调试环境后的缺省路径,如果你的实验程序放在E:\MYFILE文件夹中,可以填写E:\MYFILE,则进入TD调试环境后的缺省路径为E:\MYFILE,如果不填写任何内容,表示E:\BC\BIN就是缺省路径。
如果鼠标点击屏幕将得到图1-2所示的屏幕对话框。我们仅关注用法一拦,该拦可选全屏幕(F)或窗口(W),其中全屏幕(F)表示DOS的全屏幕方式显示TD调试环境,是字符环境,除了支持键盘操作,还支持DOS字符方式的鼠标功能,窗口(W)表示Win2000窗口下显示TD调试环境,该环境为图形方式,仅支持键盘操作,不支持鼠标功能。建议大家选择全屏幕(F) 以便操作。
TD属性设置好后即可在Win2000对TD.EXE文件双击,从而TD得到运行。
图1-1 TD属性中程序对话框 图1-2 TD属性中屏幕对话框
2、 操作系统为DOS环境的TD运行方法
进入DOS操作系统的方法如1-3所示。进入DOS操作系统后,如果你要调试的程序是,存放在E:\MYFILE文件夹中,则按如下方式操作:
1)e:
2)cd\
3)cd myfile
4)E:\BC\BIN\TD EXP0.EXE
其中,大小写无所谓,第4行表示运行E:\BC\BIN文件夹中TD.EXE调试程序,对EXP0.EXE进行调试。
◆ TD的基本使用
Turbo Debug是Borland公司推出的一个集成调试软件,可以调试DOS和Windows程序。比起更传统的debug,它的功能强大,使用方便。如果只要调试DOS程序,仅需要TD.EXE一个文件(476K)即可。图13是Turbo Debug的界面。它的CPU窗包括代码段子视窗、寄存器子视窗、标志位子视窗、堆栈段子视窗和数据段子视窗。
屏幕顶部显示的是菜单条,为了从菜单条处下拉出一个菜单,一般可以直接用鼠标点击菜单(注意Win操作系统的窗口显示时不支持鼠标操作),或者要先按F10功能键、后再用←或→键使想要的选项变为高亮、最后按ENTER键即可。另一种方法是按住Alt+菜单名称的第一个字母组合键。
TD除了键盘操作外,我们还可以很容易地通过鼠标对界面进行操作。例如要修改窗口外观的大小,我们可以按ALT+O,打开菜单中的Option项(图1-4),从中选取Display options来打开一个对话框(图1-5)。也可以直接用鼠标点击菜单上的Options项后得到。图1-5的对话框允许我们修改窗口的大小,通过改变Screen Lines的值。
图1-4 Option菜单
图1-5 Display options对话框
F5快捷键是TD菜单中windows下拉菜单的Zoom来把视窗窗在最大化和最小化间切换的键,也可以直接用鼠标点住窗口右下角并拖动到理想的位置(图1-6)。
图1-6 拖动右下角改变窗口大小
TD还有一个优势就是它的状态行提示的快捷键。屏幕底部的状态行显示的是相关的功能键及其用途,如图1-7所示。
图1-7 状态行提示
状态行的内容会随用户输入的不同而发生变化(例如菜单发生变化、命令对话框的变化等)。若按住Alt一会儿,可以发现状态行的内容改变为用户可用Alt键获取的功能键信息。按住Ctrl一会儿,状态行显示的命令是当前视窗窗口部分所对应的局部菜单命令(LOCAL MENU COMMAND)的热键。它们随用户所在的窗口类型和所在视窗不同而发生变化。一旦进入菜单系统,状态行将再次改变为显示当前高亮度菜单选择的功能。用ESC键可以离开菜单系统。
◆ TD的菜单功能介绍
一. 系统菜单
菜单命令 | 使用说明 | 快捷键 | |
Repaint desktop | 重新显示整个屏幕 | 无 | |
Restore standard | 恢复标准的windows设置 | 无 | |
About… | 获取Turbo Debugger的信息 | 无 | |
二. File菜单
菜单命令 | 汇编语言指导书使用说明 | 快捷键 | |
Open… | 打开一个要调试的新程序 | 无 | |
Change dir… | 改变缺省工作路径 | 无 | |
Get info… | 显示调试程序的当前信息 | 无 | |
Dos shell | 运行DOS命令处理机 | 无 | |
Resident | 终止T D并驻留内存 | 无 | |
Symbol load… | 加载一个新的符号表 | 无 | |
Table relocate | 符号表指定新的段基地址 | 无 | |
Quit | 退出Turbo Debugger | Alt-X | |
三. Edit菜单
菜单命令 | 使用说明 | 快捷键 | |
Copy | 复制项目 | Shift-F3 | |
Paste | 粘贴项目 | Shift-F4 | |
Copy to log | 将项目复制入日志文件中 | 无 | |
Dump pane to log | 将当前窗转入日志文件中 | 无 | |
四. View菜单
菜单命令 | 使用说明 | 快捷键 | ||
Breakpoints | 打开断点窗 | 无 | ||
Stack | 打开堆栈窗 | 无 | ||
Log | 打开日志窗 | 无 | ||
Watches | 打开监视窗 | 无 | ||
Variables | 打开变量窗 | 无 | ||
Module… | 打开模块窗 | F3 | ||
File… | 打开文件窗 | 无 | ||
CPU | 打开CPU窗 | 无 | ||
Dump | 打开转储窗口 | 无 | ||
Registers | 打开CPU寄存器窗 | 无 | ||
Numeric processor | 打开数字协处理器窗 | 无 | ||
Execution history | 打开执行任务历史窗 | 无 | ||
Hierarchy | 打开类的分层窗 | 无 | ||
Windows messages | 打开Windows消息窗 | 无 | ||
Clipboard | 打开粘贴板窗 | 无 | ||
Another | Module… | 打开另模块窗 | 无 | |
Dump | 打开另转储窗口 | 无 | ||
File… | 打开另文件窗口 | 无 | ||
五.Run菜单
菜单命令 | 使用说明 | 快捷键 | |
Run | 全速运行 | F9 | |
Go to curse | 运行到光标处停止 | F4 | |
Trace into | 一条一条跟踪运行程序指令 | F7 | |
Step ovrer | 跳过指令 | F8 | |
Execute to… | 执行到指定的指令代码处 | Alt-F9 | |
Until return | 一直运行直到返回 | Alt-F8 | |
Animate… | 以动画方式运行程序 | 无 | |
Back trace | 向后跟踪 | Alt-F4 | |
Istruction trace | 指令跟踪 | Alt-F7 | |
Arguments… | 参数 | 无 | |
Program reset | 程序复位 | Ctrl-F2 | |
Run部分二级菜单
1. Execute to…
显示信息说明 | |
在空格中输入要执行停止的指令地址,点击OK确定,Clip…从粘贴板粘贴指令地址,Cancel取消,Help获取帮助信息 | |
2. Animate…
显示信息说明 | |
在空格中输入10倍的动画间隔时间(单位:秒),点击OK确定,Clip…从粘贴板粘贴时间,Cancel取消,Help获取帮助信息 | |
3. Arguments
显示信息说明 | |
在空格中输入命令行参数,点击OK确定,Clip…从粘贴板粘贴命令行参数,Cancel取消,Help获取帮助信息 | |
六.Breakpoints菜单
菜单命令 | 使用说明 | 快捷键 | |
Toggle | 切换 | F2 | |
At | 设置断点地址 | Alt-F2 | |
Changed memory global | 改变全局断点地址 | 无 | |
Expressioon true global | 全局条件表达式 | 无 | |
Hardware breakpoint | 硬件断点 | 无 | |
Delete all | 删除全部 | 无 | |
七.Data菜单
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论