实验一 DEBUG命令使用及8088指令使用一、实验目的1、 熟悉使用DEBUG命令2、 用DEBUG命令进行七种寻址方式的验证二、DEBUG学习指导 DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段1、 DEBUG程序的启动在DOS提示符下,可键入命令: C>DEBUG[d:][path][文件名][ 参数1][参数2] 其中文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存用户可以通过DEBUG的命令对指定文件进行修改、显示和执行如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行2、DEBUG的主要命令(1)汇编命令A,格式为: -A[地址] 该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中2)反汇编命令U,有两种格式: 1)-U[地址] 该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。
2)-U范围该命令对指定范围的内存单元进行反汇编,例如: -U 04BA:0100 0108或 –U 04BA:0100 L9 此二命令是等效的3)运行命令G,格式为: -G [=地址1][地址2[地址3]] 其中地址1规定了运行起始地址,后面的若干地址均为断点地址4)追踪命令T,有两种格式: 1)逐条指令追踪: -T[=地址] 该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值 2)多条指令追踪: -T[=地址][值] 该命令从指定地址起执行n条命令后停下来,n由[值]确定5)显示内存单元内容的命令D,格式为: -D[地址]或-D[范围](6)修改内存单元内容的命令E,它有两种格式: 1)用给定的内容代替指定范围的单元内容: -E地址 内容表 例如:-E 2000:0100 F3 “XYZ” 8D 其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入 2)逐个单元相继地修改: -E地址 例如:-E 100: 18E4:0100 89.78 此命令是将原100号单元的内容89改为78。
78是程序员键入的7)检查和修改寄存器内容的命令R,它有三种方式: 1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R 标志位显示CFZFSFAFOFPFDFIF1CYZRNGACOVPEDNEI0NCNZPLNANVPOUPDI表1 标志寄存器显示内容一览表2)显示和修改某个指定寄存器内容,格式为: -R 寄存器名 例如打入:-R AX 系统将响应如下: AX FIF4 :表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如: -R BX BX 0369 :059F 则BX内容由0369改为059F 3)显示和修改标志位状态,命令格式为: -RF 系统将给出响应,如 OV DN EI NG ZR AC PE CY- 这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意如 OV DN EI NG ZR AC PE CY-PONZDINV(8)命名命令N,格式为: -N 文件名此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W命令把文件装入内存进行调试或者存盘9)装入命令L,它有两种功能: 1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为: -L 地址 驱动器 扇区号 扇区数 2)装入指定文件,格式为: -L [地址] 此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。
在用L命令前,BX和CX中应包含所读文件的字节数10)写命令W,有两种格式: 1)把数据写入磁盘的指定扇区: -W 地址驱动器 扇区号 扇区数 2)把数据写入指定文件中: -W [地址] 此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中在用W命令前,BX和CX中应包含要写入文件的字节数11)退出DEBUG命令Q,该命令格式为 Q 它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W附:动态调试器DEBUG 使用1、键入 DEBUG 进入 DEBUG,显示提示符 '-'2、退出DEBUG命令:Q3、显示内存命令:D 起始地址 结束地址4、修改内存命令:E 起始地址,连续修改键入空格键,键入回车键退出E命令5、检查寄存器命令:R6、修改寄存器命令:R 寄存器名7、小汇编命令:A 起始地址,不输入指令键入回车键退出A命令8、反汇编命令:U 起始地址 结束地址9、文件命名命令:N 盘号:文件名10、读文件命令:L 内存地址11、写文件命令:W 内存地址10、读扇区命令:L 内存地址 盘号(0--A:,1--B:) 扇区号 扇区数11、写扇区命令:W 内存地址 盘号 扇区号 扇区数12、运行命令:G=起始地址 结束(断点)地址13、单步命令:T=起始地址 运行指令数,进入子程序内部。
14、单步命令:P=起始地址 运行指令数,不进入子程序内部15、内存搬家命令:M 起始地址 结束地址 目的地址16、十六进制数加法:H 数值 数值三、实验内容1、立即寻址2、寄存器寻址3、直接寻址4、寄存器间接寻址5、寄存器相对寻址6、基址加变址7、相对基址加变址。