实习一 调试工具的使用方法训练
- 格式:doc
- 大小:74.50 KB
- 文档页数:6
实验一熟悉使用调试工具软件DEBUG实验一熟悉使用调试工具软件debug实验一熟悉调试工具软件调试编写汇编语言时,如果源程序中存在语法或格式上的错误,在汇编和链接过程中都可以被发现并得以纠正。
但是如果在源程序中存在逻辑错误时,就只能通过调试来纠正了。
常用的调试工作软件是debug。
debug提供了修改寄存器和内存单元内容的命令,可以方便地修改寄存器及内存单元的内容,为调试和修改程序带来的方便。
1.调试启动在windows环境下,点击开始栏里的运行窗,输入debug。
2、debug的主要命令这里只介绍几个常用的调试命令。
有关其他命令,请参阅相关文献。
1)r命令R命令用于查看和修改寄存器的值。
在提示符“-”下输入命令r,debug将会显示出当前所有寄存器和标志位的状态。
在r后输入相关寄存器名称,以修改相关寄存器值。
2) D命令d命令作用:显示内存区域的内容。
在提示“-”时执行命令d,以观察当前存储单元的内容。
用命令d显示内存区域的内容时,最左边是内存的起始地址,中间以十六进制的形式显示内存值,最右边是以ascii码的形式显示内存值。
每行最多显示16个字节的内容。
命令D可以接受或忽略参数。
当调试启动时,将DS的值设置为X。
当省略该参数时,命令d的显示内容从X:100开始,每次显示128字节。
将来在没有参数的情况下执行命令d时,debug将根据最后一个位置继续显示。
带参数时debug能够显示指定地址范围的内容。
带参数的方式有三种:方式一:d[起始位置]。
debug从起始位置开始显示128个字节的内容。
在提示符“-”下执行命令d1af5:100。
观看命令执行结果。
模式二:D[开始位置][结束位置]。
调试从开始位置开始,并一直显示到结束位置。
在提示“-”时执行DDS:1001ff命令。
观察命令执行结果。
方法3:D[起始位置][l长度],长度由l参数标记。
Debug显示从起始位置开始的指定长度的内容。
在提示“-”时执行DDS:100l10命令。
程序调试工具操作技巧第一章:介绍程序调试工具的重要性程序调试工具是开发人员在编写和调试软件时的必备工具之一。
它们能够帮助开发人员找出程序中的错误和问题,并支持对程序进行逐步执行、变量追踪和性能分析等操作。
本文将介绍几种常用的程序调试工具及其操作技巧。
第二章:常用的程序调试工具1. GDBGDB是一个功能强大的命令行调试器,可用于调试C、C++、Objective-C和Fortran等编程语言。
它可以实现断点调试、变量监视、内存泄漏检测等功能。
在使用GDB调试程序时,我们可以通过设置断点、运行程序、单步执行、查看变量值等操作来定位和解决问题。
2. Visual Studio DebuggerVisual Studio Debugger是Microsoft Visual Studio集成开发环境中的调试工具。
它提供了简单易用的图形用户界面,支持多种编程语言。
Visual Studio Debugger支持断点调试、条件断点、单步执行、变量监视等功能。
它还提供了一些高级功能,如远程调试和性能分析等。
3. IntelliJ IDEA DebuggerIntelliJ IDEA Debugger是JetBrains开发的一款IDE(集成开发环境)调试工具。
它可用于Java、Kotlin、Groovy和Scala等编程语言的调试。
IntelliJ IDEA Debugger提供了断点调试、条件断点、变量监视、堆栈跟踪等功能。
同时它还支持远程调试和多线程调试等高级功能。
第三章:程序调试工具的常用操作技巧1. 设置断点在程序中设置断点是一种常用的调试技巧。
通过在关键位置设置断点,可以让程序在执行到该断点时暂停,然后我们可以检查当前的变量值、调用堆栈等信息,以便找出问题所在。
不仅如此,我们还可以设置条件断点,当满足特定条件时程序暂停执行,这对于复杂的逻辑调试非常有帮助。
2. 单步执行单步执行是一种逐行调试的技巧。
实验1 DEBUG的使用及程序调试方法一、实验目的通过本实验使学生掌握调试工具DEBUG的使用方法、理解汇编指令、存储单元和寄存器等有关概念,能对简单的汇编语言程序进行调试。
二、实验原理DEBUG是DOS、WINDOWS都提供的实模式(8086方式)程序的调试工具,在DOS 方式下工作。
使用它可以读写、传送、查看CPU各种寄存器中的内容、显示内存单元的内容、设置程序起始执行地址或断点、机器码级跟踪程序的运行。
用DEBUG编程简单、方便和直观,可以直接查看程序的执行情况,便于熟悉和理解指令,掌握基本编程技巧。
DEBUG只使用十六进制表示数据(十六进制后面不加H),且对字母的大小写不敏感。
常用到的DEBUG功能:✧用DEBUG的R命令查看、改变CPU寄存器的内容✧用DEBUG的D命令查看内存中的内容✧用DEBUG的E命令修改内存中的内容✧用DEBUG的U命令将内存中的机器指令翻译成汇编指令✧用DEBUG的T命令执行一条机器指令✧用DEBUG的A命令以汇编指令的格式在内存中写入一条机器指令三、实验内容(1)学习调试工具DEBUG的使用方法,熟悉DEBUG常用命令的功能和用法。
(2)利用DEBUG调试简单的汇编语言程序,体会汇编指令的功能、寄存器的作用、存储单元地址与内容的概念和作用,以及程序的执行。
四、实验方法与步骤1.DEBUG的进入与退出DEBUG是在DOS方式下使用的程序。
在进入DEBUG前,应先以从WINDOWS 2000/XP中进入DOS方式(进入的是虚拟8086模式的DOS)。
方法:选择【开始】菜单中的【运行】命令,打开【运行】对话框,在文本框中输入“cmd”后,单击【确定】按钮或按下键盘上的【Enter】键。
在命令提示符后输入”debug”后按下键盘上的【Enter】键。
2. 显示寄存器命令 R功能:用于查看和改变CPU寄存器的内容格式:R [<寄存器>]说明:当R命令后面不指定寄存器时,显示所有寄存器的内容例1-1 显示所有寄存器的内容-rAX=0200 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000 DS=138A ES=138A SS=138A CS=138A IP=0100 NV UP EI PL NZ NA PO NC 138A:0100 B241 MOV DL,41例1-2 修改寄存器的内容-r axAX 0200100-rAX=0100 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000DS=138A ES=138A SS=138A CS=138A IP=0100 NV UP EI PL NZ NA PO NC 138A:0100 B241 MOV DL,41例1-3 用RF命令可以显示和修改标志寄存器FR中的标志位,无论修改哪一位标志位,只需要键入该标志位的表示符号(如表1.1所示),并且标志位值的键入顺序可任意。
软件开发岗位实习报告:编码与调试之路一、引言我在某大型软件公司进行为期三个月的软件开发实习。
作为一名计算机科学专业的学生,我对软件开发有着浓厚的兴趣,通过这次实习,我有机会深入了解了软件开发这个行业,并亲身参与了大型软件项目的开发过程。
本文将重点介绍我在实习期间所学到的编码与调试技巧,分享我的实习经验和感悟。
二、编码技巧1. 设计与架构在软件开发过程中,良好的设计和合理的架构是确保开发高效和可维护的关键。
在实习的开始阶段,我参与了一个正在进行的项目,并与项目组的成员一起讨论项目的设计和架构。
在设计过程中,我们注重了模块化与可扩展性。
我们将整个项目分成多个模块,每个模块负责不同的功能。
通过良好的模块划分,我们可以提高代码的复用性,并且在项目需要拓展时,可以更加容易地进行功能的添加和修改。
2. 版本控制与代码管理在实际的软件开发过程中,版本控制和代码管理非常重要。
我在实习期间学习并使用了Git这一常用的版本控制系统。
通过Git,我们能够对项目进行版本管理,保留历史纪录,并且可以方便地与其他开发人员协作。
另外,我还学习了使用代码管理工具(例如Jenkins)对项目进行自动化构建和测试。
这样可以确保项目在不同的环境下都能正确地构建和运行,并且能够及时发现和解决潜在的问题。
3. 编码规范和注释编码规范和注释对于一个项目的可读性和可维护性也非常重要。
在实习期间,我遵守公司的编码规范,并且将项目中的关键部分进行了详细注释,以提高代码的可读性。
此外,我也努力遵循良好的命名规则,在选择变量和函数名称时尽量做到见名知意,并且注重代码的缩进和格式化,以提高代码的可读性。
三、调试技巧1. 调试工具的使用在项目开发过程中,遇到问题和bug是不可避免的。
我学习并掌握了一些常用的调试工具,例如断点调试、日志和性能分析等。
通过这些工具,我能够更加快速和准确地定位问题,并进行相应的修复。
2. 分析和理解问题在调试过程中,我发现分析和理解问题的本质非常重要。
一、实习背景随着我国经济的快速发展,各行各业对设备的依赖程度越来越高。
为了提高设备的使用效率和稳定性,设备调试工作变得尤为重要。
本报告以某公司生产线上的一台新设备为例,记录了设备调试的整个过程。
二、实习目的1. 掌握设备调试的基本流程和方法。
2. 提高实际操作能力,为以后从事相关工作奠定基础。
3. 了解设备调试过程中可能出现的问题及解决方法。
三、实习时间2022年x月x日至2022年x月x日四、实习地点某公司生产车间五、实习内容1. 设备介绍本次调试的设备为某型号的自动化生产线,主要由以下几个部分组成:输送带、传感器、控制器、执行器、电气柜等。
该生产线主要用于生产某类产品,具有自动化程度高、生产效率快等特点。
2. 调试准备(1)熟悉设备原理和结构:通过查阅设备说明书和相关资料,了解设备的工作原理、结构组成及各部件的功能。
(2)准备调试工具:准备好万用表、示波器、扳手、螺丝刀等调试工具。
(3)检查设备外观:检查设备是否有损坏、变形等情况,确保设备外观完好。
3. 调试过程(1)电气调试:首先对电气柜内的线路进行检查,确保线路连接正确、接触良好。
然后对控制器、传感器、执行器等电气部件进行测试,检查其工作状态是否正常。
(2)机械调试:对输送带、传感器、执行器等机械部件进行检查,确保其运行平稳、无异常声响。
(3)软件调试:通过编程软件对控制器进行编程,设置参数,使设备按照预定的工作流程运行。
(4)系统联调:将电气、机械、软件等各个部分进行联调,确保整个系统运行稳定、可靠。
4. 调试结果经过一系列的调试工作,设备运行稳定,各项指标达到预期要求。
具体表现如下:(1)电气系统:线路连接正确,接触良好,无短路、断路现象。
(2)机械系统:输送带运行平稳,传感器、执行器等部件工作正常。
(3)软件系统:控制器编程正确,参数设置合理,设备按照预定流程运行。
六、实习总结1. 通过本次实习,掌握了设备调试的基本流程和方法,提高了实际操作能力。
一、实习基本信息实习名称:设备调试实习实习时间: 2023年X月X日至2023年X月X日实习地点: XX科技有限公司实习单位: XX科技有限公司实习指导教师: XX实习学生: [您的姓名]二、实习目的与意义本次实习旨在通过实际操作,使我深入了解设备调试的基本流程、方法和技巧,提高动手能力和解决实际问题的能力。
通过实习,我希望能掌握以下技能:1. 熟悉设备调试的基本流程和步骤。
2. 掌握常用调试工具的使用方法。
3. 能够独立完成设备的调试和故障排查。
4. 培养团队合作精神和沟通能力。
三、实习内容1. 设备认知:实习初期,我在指导老师的带领下,对实习单位的各类设备进行了全面的认知,包括设备的基本结构、工作原理、性能参数等。
2. 调试理论学习:通过查阅资料和听取指导老师的讲解,我学习了设备调试的基本理论知识,包括调试原则、调试方法、调试步骤等。
3. 实践操作:在指导老师的指导下,我参与了设备的调试工作,包括:- 设备安装与连接:根据设备图纸和技术要求,正确安装设备,并完成必要的电气连接。
- 设备检查与校准:对设备进行检查,确保各部件运行正常,并进行必要的校准。
- 调试与测试:按照调试步骤,对设备进行调试,并进行各项性能测试,确保设备达到设计要求。
- 故障排查与处理:在调试过程中,遇到故障时,能够独立分析原因,并采取有效措施进行处理。
4. 总结与改进:在实习过程中,我对调试过程中遇到的问题进行了总结,并提出了改进措施,以提高调试效率和设备性能。
四、实习收获1. 技能提升:通过本次实习,我掌握了设备调试的基本技能,能够独立完成设备的调试和故障排查。
2. 理论知识与实践相结合:我深刻体会到理论知识与实践操作相结合的重要性,只有将所学知识应用于实际工作中,才能真正提高自己的能力。
3. 团队合作与沟通:在实习过程中,我与团队成员密切配合,共同完成了调试任务,培养了团队合作精神和沟通能力。
4. 问题解决能力:通过解决实习过程中遇到的问题,我提高了自己的问题分析能力和解决能力。
学会使用调试工具解决嵌入式系统问题随着嵌入式系统的广泛应用和复杂性的提高,调试嵌入式系统问题变得愈发重要。
调试工具是解决嵌入式系统问题的得力助手,能够帮助开发人员快速定位和解决问题。
本文将介绍如何学会使用调试工具解决嵌入式系统问题。
一、调试工具的分类常见的嵌入式系统调试工具主要分为硬件调试工具和软件调试工具两大类。
1.硬件调试工具硬件调试工具一般用于嵌入式系统的硬件调试,如逻辑分析仪、示波器、仿真器等。
这些工具可用于监测信号波形、捕获和分析数据,帮助开发人员分析硬件问题。
2.软件调试工具软件调试工具用于嵌入式系统的软件调试,主要包括调试器、仿真器、代码覆盖工具、性能分析工具等。
这些工具可以帮助开发人员监控程序的运行状态,定位程序错误和性能瓶颈。
二、常用的软件调试工具1.调试器调试器是一种常见的软件调试工具,用于控制程序的执行和监控程序的状态。
调试器通常提供设置断点、单步执行、变量查看和修改、程序运行状态监控等功能。
常见的嵌入式系统调试器有GDB、JTAG调试器等。
2.仿真器仿真器是一种利用软件模拟硬件运行的工具,能够跳过硬件开发阶段,快速验证和调试嵌入式系统的软件。
通过仿真器,开发人员可以在开发主机上运行嵌入式软件,并进行调试和测试。
3.代码覆盖工具代码覆盖工具用于评估测试用例的覆盖率,帮助开发人员找到未覆盖的代码区域。
通过代码覆盖工具可以分析测试用例对程序的覆盖情况,从而帮助开发人员改进测试用例设计和调试程序。
4.性能分析工具性能分析工具可以帮助开发人员评估程序的性能状况,找出性能瓶颈。
常见的性能分析工具有时间分析器、函数调用图分析工具等。
这些工具能够帮助开发人员找到程序中的性能瓶颈,进而进行优化。
三、学会使用调试工具的步骤1.确定问题所在在使用调试工具之前,首先需要明确问题所在。
通过观察嵌入式系统的现象、记录日志和分析程序代码,尽可能准确定位问题。
2.选择合适的调试工具根据问题的性质选择合适的调试工具。
实验一调试工具DEBUG的使用1.1 实验目的(1)学习如何在Windows的命令模式下启动DEBUG。
(2)掌握DEBUG的常用基本命令。
(3)学习如何使用DEBUG查看CPU和内存以及进行跟踪调试。
1.2 实验设备及软件环境装有DOS系统及MASM6.X的微机一台。
1.3 预备知识1 什么是DEBUG?Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。
使用它,可以查看CPU各种寄存器的内容、内存的情况和在机器码级跟踪程序的运行。
2 常用的Debug命令及其含义3 启动DEBUG(1)打开Windows命令窗口选择“开始”→“运行”→输入“cmd”命令(2)启动DEBUG在命令窗口中启动DEBUG,将显示连接符“-”,这时可输入各种DEBUG命令。
(3)关于使用命令的几点说明:●在提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行;●命令是单个字母,命令和参数的大小写可混合输入●可用F1、F2、F3、Ins、De l、→等编辑键来编辑本行命令●当命令出现语法错误时,将在出错位置显示“^Error”●在DEBUG中使用的数都是以十六进制来表示的1.4 实验内容1 R命令作用:查看、改变CPU寄存器的内容(1)显示所有寄存器之中的内容:输入R我们重点关注AX、BX、CX、DX、CS及IP寄存器的内容,其他寄存器SP、BP、SI、DI、ES、SS及标志寄存器先不予理会。
此外,并列出了CS:IP所指向的内存单元处所存放的机器码,并将它翻译为汇编指令。
(2)改变寄存器中的内容:输入R AX在提示符“:”后输入1111,即可将AX的值设置为1111。
在输入R命令,查看修改后的寄存器值。
练习:(1)用R命令修改IP的值,并查看此时CS:IP的指向,存放的机器码以及对用的汇编指令;(2)用R命令修改CS的值,并查看此时CS:IP的指向,存放的机器码以及对用的汇编指令;2 D命令作用:查看指定范围内的内存中的内容(1)直接输入D命令DEBUG将输出3部分内容,查看执行结果。
实验一熟悉使用调试工具软件DEBUG引言调试是软件开发过程中不可或缺的一部分。
通过调试工具软件DEBUG,我们可以查找和修复程序中的错误、检查变量的值、跟踪代码的执行路径等等。
本实验旨在帮助学生熟悉DEBUG的基本功能和使用方法。
一、实验目标1.熟悉DEBUG软件的界面和基本功能;2.学会使用DEBUG软件进行程序的调试和跟踪;3.掌握DEBUG软件中的断点设置和单步执行等功能。
二、实验环境1. 操作系统:Windows 10;2.调试工具软件:DEBUG。
三、实验步骤[DEBUG软件界面截图](1)Registers窗口显示寄存器的内容,包括通用寄存器、段寄存器等;(2)Disassembly窗口显示汇编指令的内容;(3)Dump窗口显示内存中的内容;(1)r:显示寄存器的内容;(2)u:显示当前汇编指令的地址和指令;(3)d:显示内存中的内容。
通过执行这些指令,我们可以查看和了解程序的运行状态和内存存储的内容。
(1)g:运行程序;(2)t:执行一条指令,并显示执行结果;(3)p:执行一行汇编代码,并显示执行结果。
通过执行这些指令,我们可以跟踪程序的执行路径和变量的值。
6. 在Disassembly窗口中,双击一条汇编指令可以设置断点。
设置断点后,程序执行到断点处会自动停止。
在调试过程中,我们可以查看断点前后的变量值,检查程序是否按照预期执行。
(1)bp:查看断点列表;(2)bl:清除断点列表中的断点;(3)bd:删除一个断点。
通过执行这些指令,我们可以管理和控制断点,实现更精细的调试过程。
8. 在DEBUG软件界面中,点击工具栏上的“跟踪”按钮,可以选中“Trace over”、“Trace into”和“Animate”等选项。
这些选项分别表示在执行过程中是否显示详细过程、是否跳过函数调用、是否动画演示执行过程等。
通过选择不同的选项,我们可以根据需要自定义调试过程。
四、实验总结通过本次实验,我们了解了DEBUG软件的基本功能和使用方法。
实习报告实习单位:XX科技有限公司实习岗位:调试工实习时长:2023年2月24日至2023年5月24日一、实习背景及目的作为一名电子信息工程专业的学生,为了提高自己的实践能力和理论知识的应用能力,我选择了XX科技有限公司进行为期三个月的调试工实习。
本次实习旨在了解电子产品的生产流程,掌握调试工的基本技能,培养自己的团队合作意识和解决问题的能力。
二、实习内容及过程1. 实习内容(1)了解生产线流程:实习期间,我参观了公司的生产线,了解了电子产品的组装、焊接、调试等生产环节。
(2)学习调试工具的使用:我学习了各类调试工具的使用方法,如示波器、信号发生器、频率计等。
(3)参与产品调试:在导师的指导下,我参与了产品的调试工作,掌握了调试的基本方法和技巧。
(4)团队协作:我与同事们共同解决生产过程中遇到的问题,提高了自己的团队协作能力。
2. 实习过程(1)实习初期:我主要了解生产线流程,学习调试工具的使用方法,进行基础的调试工作。
(2)实习中期:在导师的指导下,我逐渐参与到产品的调试工作中,学会了如何分析问题、解决问题。
(3)实习后期:我能够独立完成产品的调试工作,并对生产过程中遇到的问题提出改进意见。
三、实习收获1. 技能方面:通过实习,我掌握了调试工的基本技能,如示波器、信号发生器等调试工具的使用方法。
2. 团队协作:我学会了与同事共同解决问题,提高了自己的团队协作能力。
3. 沟通能力:在与导师、同事的交流中,我提高了自己的沟通能力,学会了如何更好地与他人沟通。
4. 问题解决能力:在实习过程中,我学会了如何分析问题、解决问题,提高了自己的问题解决能力。
四、实习总结通过为期三个月的调试工实习,我深刻认识到理论知识与实践能力的结合对于电子信息工程专业的重要性。
实习期间,我不仅掌握了调试工的基本技能,还培养了团队合作意识和解决问题的能力。
同时,我也发现了自己在实践过程中存在的不足,如对某些调试工具的使用还不够熟练,需要在今后的工作中继续努力。
实习一调试工具的使用方法训练1.实验目的掌握调试工具DEBUG的使用方法,理解汇编指令、存储单元和寄存器等有关概念,能够对简单的汇编语言程序进行调试。
2.实验内容(1)学习调试工具DEBUG的使用方法,熟悉DEBUG常用命令的功能和用法。
(2)利用DEBUG调试简单的汇编语言程序,体会汇编指令的功能、寄存器的作用、存储单元地址与内容的概念和作用、以及程序的执行过程。
3.实验要求(1)掌握DEBUG的常用命令和基本的程序调试方法(2)熟悉和掌握指令系统常用指令的功能和用法,能熟练运用DEBUG调试工具调试简单的程序,并初步掌握使用DOS系统功能调用的方法。
4.重点与难点存储器和寄存器的概念、各寄存器的用途、常用指令的功能和用法、用DEBUG调试程序的方法。
5.实验结果验收熟练运用DEBUG调试工具完成实习要求的程序设计和调试6.实验指导6.1 调试工具DEBUG简介DEBUG是DOS操作系统为汇编语言程序设计者和系统管理员提供的一个通用调试工具,利用DEBUG可以读写、传送、比较、查找和显示存储器单元内容,设置程序起始执行地址或断点,执行程序或分段执行程序,跟踪程序执行,显示处理器状态,汇编或反汇编程序等。
用DEBUG编程简单、方便和直观,可以直接查看程序执行情况,便于熟悉和理解指令,掌握基本编程技巧。
DEBUG只使用十六进制表示数据(十六进制数后不加“H”),屏幕的显示数据形式如下:1400:0100 24 65 6E 64 73 0D 0A 20-20 63 6F 64 65 20 20 24 *ends..code * 1400:0110 73 65 67 6D 65 6E 74 0D-0A 20 20 20 20 20 20 24 segment.. * 1400:0170 24 61 78 2c 30 0D 0A 09-20 20 20 20 70 75 73 68 *ax,0push屏幕每行显示内容分为三部分,一行共显示十六个字节单元的内容。
第一部分是本行所显示的16个字节数据在存储器中的起始存放地址;第二部分是以十六进制显示的16个字节数据;第三部分是将本行所显示字节数据看作ASCII码时显示的字符,若某字节数据对应不可显示的ASCII码,则显示一个“.”字符代替该字节数据的显示字符。
DEBUG只有十几条单字母命令,功能强且易掌握,常用DEBUG命令如下:1)DEBUG的进入和退出进入DEBUG时,如果要同时装入某程序,键入下面的命令:H:> DEBUG <文件名> [<参数>]其中文件名指定要装入的程序目标码文件,其扩展名可以是.COM或.EXE。
<参数>是由被装入程序接收的参数。
此外,也可以用下面的方式进入DEBUG:H:> DEBUG-“-”是DEBUG的命令提示符,表明已进入DEBUG状态。
在“-”提示符之后,可以键入DEBUG命令。
退出DEBUG时,键入如下命令从DEBUG状态返回DOS:-Q2)汇编与反汇编命令汇编命令A和反汇编命令U是常使用的DEBUG命令。
①汇编命令A格式:A [<起始地址>]功能:逐行汇编程序,主要用于小段程序的汇编。
说明:使用A命令汇编程序,不允许程序中出现标号和伪指令,但MS-DOS的DEBUG 允许使用DB和DW这两条伪指令。
如果未给出起始地址,汇编后的程序代码从指令指针寄存器IP的值指定的地址开始存放。
按两次回车键可退出汇编命令A的状态。
例1-1汇编一段程序,该程序的功能是在屏幕上输出一个大写字母'A'。
-A 1001141:0100 MOV DL,411141:0102 MOV AH,021141:0104 INT 211141:0106 INT 20②反汇编命令U格式:U [<地址范围>]功能:在指定的地址范围内,将二进制机器指令逐条翻译为汇编语言符号指令。
例1-2将例1-1中汇编的程序进行反汇编-U 100 1071141:0100 B241 MOV DL,411141:0102 B402 MOV AH,021141:0104 CD21 INT 211141:0106 CD20 INT 203)执行程序命令在DEBUG下,可以完整地执行程序、分段执行程序或单步执行程序。
①执行程序命令G格式:G [=<程序起始地址>] [<断点>…]功能:完整地或分段执行程序。
说明:G命令可以从头至尾完整地执行程序,如果G命令带有有断点参数,则执行到断点地址时暂停并显示当前各寄存器状态,断点最多允许设置100个。
程序正常结束时显示“Program terminated normally”。
例1-3执行例1-1中汇编的程序。
-G =100AProgram terminated normally②跟踪执行命令P和T格式:P [=<地址>] [<跟踪条数>]T [=<地址>] [<跟踪条数>]功能:跟踪命令P和T可以逐条跟踪指令的执行,以便调试程序。
说明:每条指令执行后都将显示各寄存器的当前值。
P命令与T命令的差别是,P命令按程序书写的指令为单位,一次跟踪完一条书写指令(执行一组相关的指令),而T命令按存储单元中存放的指令为单位,一次跟踪一条指令的执行。
例1-4用P命令跟踪例1-1中的程序。
设程序执行前的各寄存器初值如下,然后开始用P命令跟踪例1-1程序:AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=1141 ES=1141 SS=1141 CS=1141 IP=0100 NV UP EI PL NZ NA PO NC1141:0100 B241 MOV DL,41-P =100AX=0000 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000DS=1141 ES=1141 SS=1141 CS=1141 IP=0102 NV UP EI PL NZ NA PO NC1141:0102 B402 MOV AH,02-PAX=0200 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000DS=1141 ES=1141 SS=1141 CS=1141 IP=0104 NV UP EI PL NZ NA PO NC1141:0104 CD21 INT 21-PAAX=0241 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000DS=1141 ES=1141 SS=1141 CS=1141 IP=0106 NV UP EI PL NZ NA PO NC1141:0106 CD20 INT 20-PProgram terminated normally用P命令只需跟踪执行4次,程序就执行完毕。
如果用T命令逐条指令跟踪执行,则将跟踪进入DOS功能调用的软中断服务程序中。
4)显示寄存器命令R格式:R [<寄存器>]功能:显示或修改寄存器内容。
说明:当R命令后面不指定寄存器时,显示所有寄存器的内容。
例1-5显示所有寄存器内容-RAX=0100 XB=0000 CX=2000 DX=00000 SP=FFEE BP=0000 SI=0000 DI=0000DS=07E1 ES=07E1 SS=07E1 CS=07E1 IP=0114 NV UP DI PL NZ NA PO NC 例1-6修改寄存器内容要修改某寄存器内容,可在R命令后键入寄存器名,DEBUG将显示出这个寄存器的值,然后键入新值就可修改该寄存器内容。
例如修改AX寄存器的内容:-R AXAX 4500:3000用RF命令可显示和修改标志寄存器FR中的标志位,无论修改哪一位标志位,只需要键入该标志位的表示符号(各标志位的符号表示如表1.1所示),并且标志位值的键入顺序可任意。
例1-7修改FR寄存器的零标志位和进位标志位。
-RFNV UP EI PL ZR NA PE CY - NZ NC (修改零标志和进位标志)-RFNV UP EI PL NZ NA PE NC - (显示修改结果)表1.1 标志寄存器各标志位符号及意义5)存储器单元访问命令①显示存储器单元命令D格式:D [<地址范围>]功能:显示指定地址范围内的存储区数据,包括十六进制数据形式及其对应的ASCII 码字符显示。
例1-8显示110H到116H存储器单元的内容。
-D 110 1161540:0110 73 65 67 6D 65 6E 74 segment②写存储器单元命令E格式:E <地址> [<字符串>]功能:逐个修改指定单元内容或将字节串写入指定的一组连续单元。
例1-9将字节串'string'写入以142H为起始地址的存储器区。
-E 142 'string'表1.2DEBUG命令表6.2 实习题(1)下面的例子可用于调试程序的实验,并且作为几个常用DOS系统功能调用的示范。
①将大写字母'A'转换为小写字母'a'-A 200MOV DL,41 ;'A'->DLOR DL,20 ;'A'->'a'MOV AH,2 ;功能号-> AHINT 21 ;调用DOS功能调用2号功能,显示一个字符INT 20 ;退出程序执行,返回DOS-G =200思考并尝试修改程序,实现如下功能:将大写字母'B'转换为小写字母'b'。
②从键盘输入一个字符并回显-A 220MOV AH,1 ;功能号-> AHINT 21 ;调用DOS功能调用1号功能,从键盘接收一个字符MOV DL,AL ;将接收的字符送DL,准备显示MOV AH,2 ;功能号-> AHINT 21 ;调用DOS功能调用2号功能,显示一个字符INT 20 ;退出程序执行,返回DOS-G =220③显示字符串-E 120 ‘How do you do?$’-A 100MOV DX,120 ;待显示的字符串地址->DXMOV AH,9 ;功能号-> AHINT 21 ;调用DOS功能调用9号功能,显示一个字符串INT 20 ;退出程序执行,返回DOS-G =100思考并尝试修改程序:如果将字符串存放在300H开始的存储区,应该怎样修改程序?(2)从BX所指的内存单元开始连续存放着两个字数据(被减数和减数),按寄存器间接寻址方式写出指令序列,取得被减数和减数,求两数之差,并将差存放于减数之后。