微机原理与汇编语言微机原理与汇编语言第第4章章 MASM汇编基础及上机汇编基础及上机 4.6 汇编程序的编写与执行汇编程序的编写与执行 4.7 调试程序调试程序DEBUG的使用的使用 第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.1 一个汇编语言程序从写出到最终一个汇编语言程序从写出到最终执行的简要过程执行的简要过程 编写编写--〉〉编译编译--〉〉连接连接--〉〉执行执行演示演示第第4章章 MASM汇编基础及上机汇编基础及上机assumecodesg XXX segment XXX ends end 4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.2 源程序源程序第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.2 源程序源程序程序的结构程序的结构v定义一个段定义一个段v实现处理任务实现处理任务v程序结束程序结束v段与段寄存器关联段与段寄存器关联 语法错误和逻辑错误语法错误和逻辑错误 语法错误语法错误程序在编译时被编译器发现的错误;程序在编译时被编译器发现的错误;容易发现。
容易发现 assum cs:codesgcodesg segment start:mov ax,0123h mov bx,0456h add ax,bx add ax,ax mov ax,4c00h int 21hcodesg endsend start语法错误和逻辑错误语法错误和逻辑错误 逻辑错误逻辑错误w程序在编译时不能表现出来的、在运行时程序在编译时不能表现出来的、在运行时发生的错误不容易发现发生的错误不容易发现 assume cs:codesgcodesg segment start:mov ax,0123h mov bx,0456h add ax,bx add ax,axcodesg ends mov ax,4c00h int 21hend start第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.2 源程序源程序打开打开“记事本记事本”程序,在其中编辑程序,如下图所示:程序,在其中编辑程序,如下图所示:第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.3 编译编译v进入进入DOS方式,进入方式,进入 D:\masm 目录,运行目录,运行masm.exe。
v如果源程序文件不是以如果源程序文件不是以 asm为扩展名的话,就为扩展名的话,就要输入它的全名比如要输入它的全名比如1.txtv在输入源程序文件名的时候一定要指明它所在在输入源程序文件名的时候一定要指明它所在的路径如果文件就在当前路径下,只输入文的路径如果文件就在当前路径下,只输入文件名就可以件名就可以第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.3 编译编译v输入要编译的源文件文件名后,按输入要编译的源文件文件名后,按 Enter键v目标文件(目标文件(*.obj)是我们对一个源程序进行)是我们对一个源程序进行编译要得到的最终结果编译要得到的最终结果v编译程序默认要输出的目标文件名为编译程序默认要输出的目标文件名为1.obj,所,所以可以不必再另行指定文件名以可以不必再另行指定文件名第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.3 编译编译v列表文件是编译器将源程序编译为目标列表文件是编译器将源程序编译为目标文件的过程中产生的中间结果文件的过程中产生的中间结果v可以不生成这个文件,直接按可以不生成这个文件,直接按 Enter键键即可。
即可第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.3 编译编译v编译程序提示输入交叉引用文件的名称编译程序提示输入交叉引用文件的名称v这个文件同列表文件一样,是编译器将源程这个文件同列表文件一样,是编译器将源程序编译为目标文件过程中产生的中间结果序编译为目标文件过程中产生的中间结果v可以不生成这个文件,直接按可以不生成这个文件,直接按 Enter 键即可第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.3 编译编译v对源程序的编译结束,编译器输出的最后两对源程序的编译结束,编译器输出的最后两行告诉我们这个源程序没有警告错误和必须行告诉我们这个源程序没有警告错误和必须要改正的错误要改正的错误v一般来说,有两类错误使我们得不到所期望一般来说,有两类错误使我们得不到所期望的目标文件:的目标文件:((1)我们程序中有)我们程序中有“Severe Errors”;;((2)找不到所给出的源程序文件找不到所给出的源程序文件第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.4 连接连接v在对源程序进行编译得到目标文件后,在对源程序进行编译得到目标文件后,我们需要对目标文件进行连接,从而得我们需要对目标文件进行连接,从而得到可执行文件。
到可执行文件v继续上一节的过程,我们再将继续上一节的过程,我们再将D:\masm\1.obj连接为连接为D:\masm\1.exe第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.4 连接连接v进入进入DOS方式,进入方式,进入C:\masm目录,运行目录,运行link.exev在输入目标文件名的时候,要注意指明它所在输入目标文件名的时候,要注意指明它所在的路径这里,我们要连接的文件是当前在的路径这里,我们要连接的文件是当前路径下路径下1.obj,所以此处输入,所以此处输入“1”第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.4 连接连接v输入要连接的目标文件名后,按输入要连接的目标文件名后,按Enter键v可执行文件是我们对一个程序进行连接要得可执行文件是我们对一个程序进行连接要得到的最终结果到的最终结果v连接程序默认要输出的可执行文件名为连接程序默认要输出的可执行文件名为 1.EXE ,所以可以不必再另行指定文件名所以可以不必再另行指定文件名v我们直接按我们直接按 Enter 键,使用连接程序设定的键,使用连接程序设定的可执行文件名。
可执行文件名第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.4 连接连接v映像文件是连接程序将目标文件连接为可执映像文件是连接程序将目标文件连接为可执行文件过程中产生的中间结果行文件过程中产生的中间结果v可以不生成这个文件,直接按可以不生成这个文件,直接按 Enter 键即可第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.4 连接连接v连接程序提示输入库文件的名称连接程序提示输入库文件的名称v库文件里包含了一些可以调用的子程序,如果我们的程序库文件里包含了一些可以调用的子程序,如果我们的程序中调用了某一个库文件中的子程序,就需要在连接的时候,中调用了某一个库文件中的子程序,就需要在连接的时候,将这个库文件和我们的目标文件连接到一起,生成可执行将这个库文件和我们的目标文件连接到一起,生成可执行文件v如果没有调用任何子程序,直接按如果没有调用任何子程序,直接按Enter键即可第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.4 连接连接v这时我们得到了一个新的文件这时我们得到了一个新的文件 1.exe 。
当然,如果连接过当然,如果连接过程中出现错误,那么我们将得不到这个可执行文件程中出现错误,那么我们将得不到这个可执行文件v对目标文件的连接结束,连接程序输出的最后一行告诉我对目标文件的连接结束,连接程序输出的最后一行告诉我们,这个程序有一个警告错误:们,这个程序有一个警告错误:“没有栈段没有栈段” ,这里我,这里我们不理会这个错误们不理会这个错误连接连接连接的作用有以下几个:连接的作用有以下几个:w当源程序很大时,可以将它分为多个源程当源程序很大时,可以将它分为多个源程序文件来编译,每个源程序编译成为目标序文件来编译,每个源程序编译成为目标文件后,再用连接程序将它们连接到一起,文件后,再用连接程序将它们连接到一起,生成一个可执行文件;生成一个可执行文件;w程序中调用了某个库文件中的子程序,需程序中调用了某个库文件中的子程序,需要将这个库文件和该程序生成的目标文件要将这个库文件和该程序生成的目标文件连接到一起,生成一个可执行文件;连接到一起,生成一个可执行文件;连接连接连接的作用有以下几个(续):连接的作用有以下几个(续):w一个源程序编译后,得到了存有机器码的一个源程序编译后,得到了存有机器码的目标文件,目标文件中的有些内容还不能目标文件,目标文件中的有些内容还不能直接用来生成可执行文件,连接程序将这直接用来生成可执行文件,连接程序将这此内容处理为最终的可执行信息。
此内容处理为最终的可执行信息w 所以,在只有一个源程序文件,而又不 所以,在只有一个源程序文件,而又不需要调用某个库中的子程序的情况下,也需要调用某个库中的子程序的情况下,也必须用连接程序对目标文件进行处理,生必须用连接程序对目标文件进行处理,生成可执行文件成可执行文件w注意,对于连接的过程,可执行文件是我注意,对于连接的过程,可执行文件是我们要得到的最终结果们要得到的最终结果第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.5 执行执行v现在,终于将我们的第一个汇编程序加工成了现在,终于将我们的第一个汇编程序加工成了一个可在操作系统下执行的程序文件一个可在操作系统下执行的程序文件1.exe的的执行情况:执行情况:v程序到底运行没有?程序到底运行没有?v程序当然运行了,只是从屏幕上不可能看到任程序当然运行了,只是从屏幕上不可能看到任何运行结果何运行结果第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行4.6.5 执行执行v我们的程序没有像显示器输出任何信息程我们的程序没有像显示器输出任何信息。
程序只是做了一些将数据送入寄存器和加法的序只是做了一些将数据送入寄存器和加法的操作,而这些事情,我们不可能从显示屏上操作,而这些事情,我们不可能从显示屏上看出来v程序执行完成后,返回,屏幕上再次出现操程序执行完成后,返回,屏幕上再次出现操作系统的提示符作系统的提示符v可执行文件中的程序装入内存并运行的原理可执行文件中的程序装入内存并运行的原理可执行文件中的程序装入内存并运行的原理可执行文件中的程序装入内存并运行的原理wDOS是一个单任务操作系统是一个单任务操作系统w在在DOS中,可执行文件中的程序中,可执行文件中的程序P2若要若要运行,必须有一个正在运行的程序运行,必须有一个正在运行的程序P1 ,,将将 P2从可执行文件中加载入内存,将从可执行文件中加载入内存,将CPU的控制权交给它,的控制权交给它,P2才能得以运行;才能得以运行; P2开始运行后,开始运行后,P1暂停运行暂停运行w当当P2运行完毕后,应该将运行完毕后,应该将CPU的控制权交的控制权交还给使它得以运行的程序还给使它得以运行的程序P1此后,P1继续运行继续运行w1.exe的执行过程的执行过程可执行文件中的程序装入内存并运行的原理可执行文件中的程序装入内存并运行的原理w1.exe的执行过程:的执行过程:((1)我们在提示符)我们在提示符“D:\masm”后面输后面输入可执行文件的名字入可执行文件的名字“1”,按,按Enter键。
键2))1.exe中的程序运行;中的程序运行; 问题问题1((3)运行结束,返回,再次显示提示符)运行结束,返回,再次显示提示符“D:\masm” 问题问题2第第4章章 MASM汇编基础及上机汇编基础及上机4.6 汇编程序的编写与执行汇编程序的编写与执行汇编程序从写出到执行的过程:汇编程序从写出到执行的过程:1.编写源程序编写源程序→1.txt2.编译编译masm 1.txt →1.obj3.连接连接link 1.obj →1.exe4.加载到内存并运行加载到内存并运行第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用w为了观察程序的运行过程为了观察程序的运行过程 ,我们可以使用,我们可以使用DebugwDebug 可以将程序加载入内存,设置可以将程序加载入内存,设置CS:IP指向程序的入口,但指向程序的入口,但Debug并不放并不放弃对弃对CPU 的控制,这样,我们就可以使用的控制,这样,我们就可以使用Debug 的相关命令来单步执行程序的相关命令来单步执行程序 ,查看,查看每条指令的执行结果每条指令的执行结果第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用w接下来可以用接下来可以用R命令看一下各个寄存命令看一下各个寄存器的设置情况:器的设置情况:w可以看到,可以看到,Debug将程序从可执行文将程序从可执行文件加载入内存后,件加载入内存后,CX寄存器中存放的寄存器中存放的是程序的长度。
是程序的长度1.exe 中程序的机器中程序的机器码共有码共有15个字节第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用w用用U命令查看一下其他指令:命令查看一下其他指令:第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用w用用T命令单步执行程序中的每一条指令,命令单步执行程序中的每一条指令,并观察每条指令的执行结果并观察每条指令的执行结果第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用w到了到了 int 21,要用,要用P命令执行:命令执行:wint 21 执行后,显示执行后,显示“Program terminated normally”,返回到,返回到Debug中w表示程序正常结束表示程序正常结束第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用w最后,使用最后,使用Q命令退出命令退出Debug,将返回到,将返回到command中,因为中,因为Debug是由是由command加载运行的加载运行的w如果需要退出如果需要退出DOS,请输入,请输入exit并回车。
并回车第第4章章 MASM汇编基础及上机汇编基础及上机w需要注意的是,在需要注意的是,在 DOS 中运行程序时,中运行程序时,是是command将程序加载入内存;将程序加载入内存;w所以程序运行结束后返回到所以程序运行结束后返回到command中,而在这里是中,而在这里是debug 将程序加载入内将程序加载入内存,所以程序运行结束后要返回到存,所以程序运行结束后要返回到Debug中w我们在我们在 DOS中用中用 “Debug 1.exe” 运行运行Debug对对1.exe进行跟踪时,程序加载的进行跟踪时,程序加载的顺序是:顺序是:command加载加载Debug,,Debug加载加载1.exew返回的顺序是:从返回的顺序是:从1.exe中的程序返回到中的程序返回到Debug,从,从Debug返回到返回到command第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用启动启动Debugv启动启动 Debug,它是可用于测试和调试,它是可用于测试和调试 MS-DOS 可执行文件的程序可执行文件的程序 wDebug [[drive:][path] filename [parameters]] »[drive:][path] filename 指定要测试的可执行文件的位置和名称。
指定要测试的可执行文件的位置和名称 »parameters 指定要测试的可执行文件所需要的任何指定要测试的可执行文件所需要的任何命令行信息命令行信息第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用Debug 命令命令 ? 显示显示 Debug 命令列表命令列表 a 汇编汇编 8086/8087/8088 记忆码 c 比较内存的两个部分比较内存的两个部分 d 显示部分内存的内容显示部分内存的内容 e 从指定地址开始,将数据输入到内存从指定地址开始,将数据输入到内存 f 使用指定值填充一段内存使用指定值填充一段内存 g 运行在内存中的可执行文件运行在内存中的可执行文件 h 执行十六进制运算执行十六进制运算 i 显示来自特定端口的显示来自特定端口的 1 字节值 l 将文件或磁盘扇区内容加载到内存将文件或磁盘扇区内容加载到内存 m 复制内存块中的内容复制内存块中的内容n 为为 l 或或 w 命令指定文件,或者指定正在测试的文件的参数命令指定文件,或者指定正在测试的文件的参数 第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用Debug 命令命令 o 向输出端口发送向输出端口发送 1 个字节的值。
个字节的值 p 执行循环、重复的字符串指令、软件中断或子例程执行循环、重复的字符串指令、软件中断或子例程 q 停止停止 Debug 会话 r 显示或改变一个或多个寄存器显示或改变一个或多个寄存器 s 在部分内存中搜索一个或多个字节值的模式在部分内存中搜索一个或多个字节值的模式 t 执行一条指令,然后显示所有寄存器的内容、所有标志的状态和执行一条指令,然后显示所有寄存器的内容、所有标志的状态和 Debug 下一步要执行的指令的解码形式下一步要执行的指令的解码形式 u 反汇编字节并显示相应的原语句反汇编字节并显示相应的原语句 w 将被测试文件写入磁盘将被测试文件写入磁盘 xa 分配扩展内存分配扩展内存 xd 释放扩展内存释放扩展内存 xm 映射扩展内存页映射扩展内存页 xs 显示扩展内存的状态显示扩展内存的状态 第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用调试命令调试命令v显示和修改寄存器或存储单元有关命令显示和修改寄存器或存储单元有关命令v运行程序命令运行程序命令v汇编和反汇编命令汇编和反汇编命令v文件的装、写命令文件的装、写命令v退出退出DEBUG命令命令v其他命令其他命令第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用命令参数命令参数v分隔命令参数分隔命令参数 w所有所有 Debug 命令都接受参数,除了命令都接受参数,除了 q 命令命令之外。
可以用逗号或空格分隔参数,但是只之外可以用逗号或空格分隔参数,但是只有在两个十六进制值之间才需要这些分隔符有在两个十六进制值之间才需要这些分隔符因此,以下命令等价:因此,以下命令等价: dcs:100 110 d cs:100 110 d,cs:100,110 第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用命令参数命令参数v指定有效地址项指定有效地址项 wDebug 命令中的命令中的 address 参数指定内存位置参数指定内存位置Address 是一个包含字母段记录的二位名称或一个是一个包含字母段记录的二位名称或一个四位字段地址加上一个偏移量可以忽略段寄存器四位字段地址加上一个偏移量可以忽略段寄存器或段地址或段地址a,,g,,l,,t,,u 和和 w 命令的默认段是命令的默认段是 CS所有其他命令的默认段是所有其他命令的默认段是 DS所有数值均为十六进所有数值均为十六进制格式 w有效地址如下:有效地址如下: CS:0100 04BA:0100 在段名和偏移量之间要有冒号在段名和偏移量之间要有冒号 第第4章章 MASM汇编基础及上机汇编基础及上机4.7 调试程序调试程序Debug的使用的使用命令参数命令参数v指定有效范围项指定有效范围项 wDebug 命令中的命令中的 range 参数指定了内存的参数指定了内存的范围。
可以为范围可以为 range 选择两种格式:起始选择两种格式:起始地址和结束地址,或者起始地址和长度范围地址和结束地址,或者起始地址和长度范围(由(由 L 表示) w例如,下面的两个语法都可以指定从例如,下面的两个语法都可以指定从 CS:100 开始的开始的 16 字节范围:字节范围: cs:100 10f cs:100 L 10 显示和修改寄存器或存储单元有关命令显示和修改寄存器或存储单元有关命令1.R命令命令①①显示单个寄存器的内容并等待显示单个寄存器的内容并等待修改这个寄存器的内容修改这个寄存器的内容wR之后输入寄存器名字符之后输入寄存器名字符②②显示所有寄存器和标志位值显示所有寄存器和标志位值w只输入只输入ROF DF IF SF ZA AF PF CF显示和修改寄存器或存储单元有关命令显示和修改寄存器或存储单元有关命令1.R命令命令③③显示上述显示上述8个状态标志位的状态并等待重新设个状态标志位的状态并等待重新设置w输入输入RFw按回车不改变标志位状态按回车不改变标志位状态w或输入新的状态符,重新设置标志位状态或输入新的状态符,重新设置标志位状态显示和修改寄存器或存储单元有关命令显示和修改寄存器或存储单元有关命令2.D命令命令v显示某个存储区的内容。
显示某个存储区的内容①① D,如不指定范围,一次显示如不指定范围,一次显示8行行×16个字节个字节--D 默认段寄存器为默认段寄存器为DS,当前偏移地址,当前偏移地址②② D [地址地址]--D 0B03:0100--D 130;;130为偏移地址,默认段寄存器为偏移地址,默认段寄存器DS显示和修改寄存器或存储单元有关命令显示和修改寄存器或存储单元有关命令2.D命令命令v显示某个存储区的内容显示某个存储区的内容③③ D [范围范围]-D DS:100-D CS:100-D DS:100 110-D 100 L 10显示和修改寄存器或存储单元有关命令显示和修改寄存器或存储单元有关命令3.E命令命令v显示和修改存储单元的内容默认段地址为显示和修改存储单元的内容默认段地址为DS①① E 地址地址»从指定地址开始,修改(或连续修改)存储单元内容从指定地址开始,修改(或连续修改)存储单元内容»DEBUG首先显示指定单元内容,如要修改,可输入首先显示指定单元内容,如要修改,可输入新数据新数据»减号键显示上一个单元内容并可修改减号键显示上一个单元内容并可修改»空格键显示下一个单元内容并可修改空格键显示下一个单元内容并可修改»如不修改,可按回车键结束命令。
如不修改,可按回车键结束命令②② E 地址地址 数据表数据表从指定的地址开始用数据表给定的数据修改存储单元从指定的地址开始用数据表给定的数据修改存储单元 --E DS:170 F3 2F 8D显示和修改寄存器或存储单元有关命令显示和修改寄存器或存储单元有关命令4.F命令命令v在指定的存储器地址范围内置入在指定的存储器地址范围内置入list参数给参数给出的数值或字符代码默认段地址为出的数值或字符代码默认段地址为DSvF 范围范围 数据表数据表w将数据表写入指定范围的存储单元;数据个数多,将数据表写入指定范围的存储单元;数据个数多,忽略多出的数据,个数少,则重复使用数据表忽略多出的数据,个数少,则重复使用数据表»--F DS:0 L5 01,02,03,04,05»--F DS:0 L5 01 02 03 04 05(空格分隔)(空格分隔)»--F DS:0 L5 FF ;;5个字节重复使用个字节重复使用FF显示和修改寄存器或存储单元有关命令显示和修改寄存器或存储单元有关命令5.M命令命令v用指定的存储区的内容传送到另一指令的存储区去用指定的存储区的内容传送到另一指令的存储区去默认段地址为默认段地址为DS。
vM 范围范围 地址地址w范围指被传送的存储区的地址范围范围指被传送的存储区的地址范围w地址指传送的目的存储区的开始地址地址指传送的目的存储区的开始地址运行程序命令运行程序命令1.G命令命令v执行正在调试的程序默认段地址为执行正在调试的程序默认段地址为CS①① G;从;从CS:IP指向的指令开始执行程序,直到程序结束指向的指令开始执行程序,直到程序结束②② G=地址;从指定地址开始执行程序,直到程序结束地址;从指定地址开始执行程序,直到程序结束③③ G 断点断点1[,断点,断点2,,…断点断点10];从;从CS:IP指向的指令开始指向的指令开始执行程序,直到遇到断点执行程序,直到遇到断点④④G=地址地址 断点断点1[,断点,断点2,,…断点断点10]--G=100 ;从指定地址开始执行程序从指定地址开始执行程序--G=100 105 110 120运行程序命令运行程序命令2.T命令命令v执行一条或多条指令,每执行一条指令如同执执行一条或多条指令,每执行一条指令如同执行一次行一次R命令,显示所有寄存器的内容和状态命令,显示所有寄存器的内容和状态标志位的状态标志位的状态 ①① T;从当前;从当前IP开始执行一条指令。
开始执行一条指令 ②② T 数值;从当前数值;从当前IP开始执行多条指令开始执行多条指令 ③③ T =地址;地址; ④④ T =地址地址 数值;数值; --T --T5 / --T=100 5»要想填入正确的地址和要跟踪的命令数,应先使要想填入正确的地址和要跟踪的命令数,应先使用用-u命令察看内容命令察看内容运行程序命令运行程序命令3.P命令命令v跟踪执行并跳过子程序跟踪执行并跳过子程序 P [=地址地址] [数值数值];类似;类似T命令,但跳过子程命令,但跳过子程序和中断服务程序序和中断服务程序运行程序命令运行程序命令T命令和命令和P命令的区别命令的区别v单步跟踪命令单步跟踪命令Tv单步执行命令单步执行命令Pv人们常将单步跟踪命令称作人们常将单步跟踪命令称作“单步进入单步进入(step in)”,而将,而将单步执行命令称作单步执行命令称作“单步通过单步通过(step over)”v对于对于t命令,单步跟踪命令命令,单步跟踪命令t会进入进程,一步步地执行会进入进程,一步步地执行v而单步执行命令而单步执行命令p会按照一般程序执行,而不会进入进程会按照一般程序执行,而不会进入进程中中汇编与反汇编命令汇编与反汇编命令1.A命令命令v直接汇编汇编语言指令存入存储器直接汇编汇编语言指令存入存储器wA [地址地址];从指定的地址开始输入符号指令;如省略;从指定的地址开始输入符号指令;如省略地址,则接着上一个地址,则接着上一个A命令的最后一个单元开始;若命令的最后一个单元开始;若第一次使用第一次使用A命令省略地址,则从当前命令省略地址,则从当前CS:IP开始开始(通常是(通常是CS::100)。
①①在在DEBUG下编写简单程序即使用下编写简单程序即使用A命令 ②②每条指令后要按回车每条指令后要按回车 ③③不输入指令按回车,或按不输入指令按回车,或按Ctrl+C结束汇编结束汇编 ④④支持所有支持所有8086符号硬指令,伪指令只支持符号硬指令,伪指令只支持DB、、DW,不支持各类符号名不支持各类符号名汇编与反汇编命令汇编与反汇编命令2.U命令命令v对存储器内的指令机器码进行反汇编对存储器内的指令机器码进行反汇编 ①① U [地址地址];从指定地址开始反汇编;从指定地址开始反汇编32个字节的机个字节的机器指令;省略地址时器指令;省略地址时,则接着上一个则接着上一个U命令的最后一命令的最后一个单元开始;若第一次使用个单元开始;若第一次使用U命令省略地址,则从当命令省略地址,则从当前前CS:IP开始(通常是开始(通常是CS::100) ②② U 范围;对指定范围的单元进行反汇编范围;对指定范围的单元进行反汇编 --U --U100 --U100L10汇编与反汇编命令汇编与反汇编命令文件的装、写命令文件的装、写命令1.N命令命令v N 文件标示符;指定文件,以便用文件标示符;指定文件,以便用W命命令在磁盘上生成该文件,或者用令在磁盘上生成该文件,或者用L命令从命令从磁盘装入该文件。
磁盘装入该文件w--N MY_PRO.COMw写盘:在当前盘当前目录生成指定文件写盘:在当前盘当前目录生成指定文件w读盘:在当前盘当前目录读取指定文件读盘:在当前盘当前目录读取指定文件w-- N A:\ USER \ MY_PRO.COM文件的装、写命令文件的装、写命令2.L命令命令①① L [地址地址];装入;装入N命令指定的文件,默命令指定的文件,默认的内存地址为认的内存地址为CS::100 --N MY_PRO.COM --L ②② L 地址地址 驱动器号驱动器号 扇区号扇区号 扇区数;将某扇区数;将某驱动器的若干扇区(最多驱动器的若干扇区(最多80H个)装入个)装入内存;内存; 0=A,,1=B,,2=C……;默认的段;默认的段地址为地址为CS --L DS:200 2 0 1文件的装、写命令文件的装、写命令3.W命令命令①① W [地址地址];将指定地址开始的内存数据写入磁;将指定地址开始的内存数据写入磁盘,生成盘,生成N命令指定的文件;默认的内存地址为命令指定的文件;默认的内存地址为CS:100;写盘的字节数由;写盘的字节数由BX(高位字高位字)和和CX(低低位字位字)决定,可执行程序写盘时,文件扩展名应决定,可执行程序写盘时,文件扩展名应指定指定.COM。
--N MY_PRO.COM --W②② W 地址地址 驱动器号驱动器号 扇区号扇区号 扇区数;将内存数据扇区数;将内存数据写入磁盘的若干扇区(最多写入磁盘的若干扇区(最多80H);默认的段地);默认的段地址为址为CS --W DS:0 2 0 1 注释:写磁盘扇区要慎用注释:写磁盘扇区要慎用其他命令其他命令1.S命令命令2.C命令命令3.H命令命令4.I命令命令5.O命令命令6.Q命令命令。