实验一 DEBUG命令及其操作

上传人:woxinch****an2018 文档编号:39006284 上传时间:2018-05-10 格式:DOC 页数:7 大小:48.68KB
返回 下载 相关 举报
实验一  DEBUG命令及其操作_第1页
第1页 / 共7页
实验一  DEBUG命令及其操作_第2页
第2页 / 共7页
实验一  DEBUG命令及其操作_第3页
第3页 / 共7页
实验一  DEBUG命令及其操作_第4页
第4页 / 共7页
实验一  DEBUG命令及其操作_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实验一 DEBUG命令及其操作》由会员分享,可在线阅读,更多相关《实验一 DEBUG命令及其操作(7页珍藏版)》请在金锄头文库上搜索。

1、实验一实验一 DEBUG 命令及其操作命令及其操作一、实验目的 1 熟练掌握 debug 的常用命令,学会用 debug 命令汇编和调试程序。 2 深入了解数据在存储器中的存取方法及堆栈中数据的压入与弹出。 3 掌握各种寻址方法以及简单指令的执行过程。 二、实验要求 1 实验前先预习附录 1 的内容,写出完成各实验内容的汇编程序清单。 2 本实验要求在 PC 机上进行。 3 本实验只要求在 DEBUG 调试状态下进行,包括汇编程序,调试程序,执行程序。 三、实验内容 实验内容实验内容 1:学习用 DEBUG 调试工具进行源程序的输入、汇编、调试和执行。 1打开计算机,将系统切换到 MS-DOS

2、 方式下,键入 DEBUG 后回车,将出现 debug 的 提示符“-” 。 2在 DEBUG 提示符后键入字母“-a100” ,回车后,屏幕上就会出现下面类似的内容: -a100 1272:0100(表示此时代码段的段地址为 1272,偏移地址为 0100,不同的计算机所产 生的段地址可能有所不同) 这表示在地址 1272:0100 处,DEBUG 等待用户键入程序助记符,下面键入程序: 1272:0100 mov dl,1 1272:0102 mov ah,2 1272:0104 int 21 1272:0106 int 20 1272:0108 - 3在 DEBUG 的提示符后键入 G,

3、这是执行程序的命令,然后回车,就可以看到结果了。-g Program terminated normally 4用”d”命令查看内存单元当前段中 0100H 010fH 的内容: -d100,10f 1272:0100 B2 01 B4 02 CD 21 CD 20-00 00 00 00 00 00 00 00 .!. . 在 0100H0107H 这 8 个单元内,为上述 4 条指令的机器码。例如 B201 为 mov dl,1 指 令的机器码。右边的区域是组成程序的 ASCII 码等价字符,圆点表示不可显示字符。 5下面用反汇编命令来查看一下所键入的程序。 ”U”命令的格式是“U 起始地

4、址,终止地 址” ,即把起始地址到终止地址之间的十六进制码反汇编成汇编语言助记符语句。键入:-u100,107 1272:0100 B201 MOV DL,01 1272:0102 B402 MOV AH,02 1272:0104 CD21 INT 21 1272:0106 CD20 INT 20 屏幕上不仅可看到地址和助记符,而且还可以看到与汇编语言等价的机器语言。 6现在修改存储单元 0101H 的内容,看看显示情况有何变化。 -e1011272:0101 01.41 -g A Program terminated normally 执行程序后显示的结果发生了变化,这是因为 DOS 的 2

5、 号功能调用是在屏幕上显示 dl 中保存的 ASCII 码所对应的字符,这部分内容请参看教材 101 页。 7将程序命名为 ,并存盘。在 debug 的 n 命令后紧接着输入文件名及扩展名: - -rbx BX 0000 : -rcx CX 0000 :8 -w Writing 00008 bytes 因为文件的字节数必须事先放在 BX 和 CX 中,其中 BX 保存高 16 位,CX 保存低 16 位,整个 32 位的数保存文件的字节数,一般来说,BX 设置为 0,因为 CX 可存放的字节 数为 64K,对于一般的程序已足够了。 8用 Q 命令退出 DEBUG 程序。 实验内容 1 报告要求

6、: 1 写出上述每一步执行的目的; 2 小结 debug 常用命令及使用体会 实验内容实验内容 2 设 AX=3000H,BX=5000H,通过堆栈实现将 AX 和 BX 的内容进行交换。用 DEBUG 进行程序的汇编与调试。 提示:AX 和 BX 的值可用 debug 主的 r 命令将其送入相应寄存器中,也可用 MOV 指令完成。 实验内容 2 报告要求: 1 写出完成上述功能的程序段; 2 单步执行,并记录寄存器 AX, BX 及堆栈指针 SP 的变化。 实验内容实验内容 3 设 DS=当前段地址,BX=0300H,SI=0002H。用 DEBUG 的 e 命令将内存单元 0300H030

7、4H 装入 0AH,0BH,0CH,0DH,0EH。键入下列程序,单步执行。 程序清单如下: MOV BX,0300 MOV SI, 0002 MOV AX,BX MOV AX,0304 MOV AX,0304 MOV AX,BX MOV AX,0001BX MOV AX,BXSI MOV AX,0001BXSI 实验内容 3 报告要求: 1 写出源操作数的寻址方式; 2 单步执行,并记录相关寄存器及存储单元的内容 实验内容实验内容 4 设 AX=0002H,编写程序将 AX 的内容乘 10,要求用移位的方法完成。提示:左移指令要用 SHL,而不能使用 SAL 实验内容 4 报告要求: 1 写

8、出实现上述功能的程序段; 2 单步执行程序,记录每条指令的机器码及相关寄存器的内容附录附录 1 调试程序调试程序debug在编写和运行汇编程序的过程中,会遇到一些错误和问题,需要对程序进行分析和调 试,DEBUG 就是为汇编语言设计的一种调试工具,它通过单步、设置断点等方式为汇编 语言程序员提供了非常有效的调试手段。它在调试汇编语言程序时有很强的功能,能使程 序设计者接触到机器内部,能观察和修改寄存器和存储单元的内容,并能监视目标程序的 执行情况,使用户真正接触到 CPU 内部,与计算机产生最紧密的工作联系。 在 debug 状态下,用户可以进行编辑、调试、监督、执行用户编写的汇编程序,可以

9、修改内存单元、寄存器的内容,为调试程序、修改程序带来方便。但在 debug 状态下运行 的程序不能使用宏汇编程序中的宏命令,大部分伪指令也不能使用,因此只能把程序分段 执行。 一、一、DEBUG 程序的进入程序的进入在 DOS 的提示符下,可键入命令:DEBUG D:PATHFILENAME.EXTPARM1PARM2 其中: 命令中的 D 指定驱动器,PATH 为路径; FILENAME.EXT 文件名是被调试文件的名字,注意扩展名必不可少。如用户键入 文件名,则 DEBUG 将指定的文件装入存储器中,用户可对其进行调试。如果未键入 文件名,则用户可以用当前存储器的内容工作,或者用 DEBU

10、G 命令 N 和 L 把需要 的文件装入存储器后再进行调试。 PARM1 和 PARM2 则为运行被调试文件时所需要的命令参数。 在 DEBUG 程序调入后,将出现提示符“_” ,此时就可用 DEBUG 命令来调试程序。 启动 debug 后,寄存器和标志位的状态: 1、 段寄存器(CS, DS, ES 和 SS)被置到自由存储空间的底部,即第一段位于 debug 程序的 末尾处。 2、 指令指针(IP)置为 0100H。 3、 堆栈指针(SP)置为段的尾部或装入程序暂存区域的底部。 4、 寄存器(AX,BX,CX,DX,BP,SI,DI)置为 0。若启动 debug 程序时指定了文件, 则

11、CX 寄存器内装入文件长度(字节数),如果文件长度大于 64K,则文件长度置于 BX 和 CX 中(高位在 BX 中) 。 5、 标志位为清除状态。 二、二、DEBUG 的主要命令的主要命令 1、显示存储单元的命令 D(DUMP),格式为:-Daddress或-Drange 例如,按指定范围显示存储单元内容的方法为: -d100 120 18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G.8.G.G. 18E4:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37 .;.h.

12、M PQVW.7 18E4:0120 8B其中 0100 至 0120 是 DEBUG 显示的存储单元内容,左边用十六进制表示每个字节, 右边用 ASCII 字符表示每个字节,表示不可显示的字符。这里没有指定段地址,D 命令 自动显示 DS 段的内容。如果只指定首地址,则显示从首地址开始的 80 个字节的内容。 如果完全没有指定地址,则显示上一个 D 命令显示的最后一个单元后的内容。 2、修改存储单元内容的命令有两种。 输入命令-E(ENTER),有两种格式如下: 格式 1:可以用给定的内容来替代指定范围的存储单元内容。命令格式为:-E address list 例如,-E DS:100 F3

13、XYZ8D其中 F3,X,Y,Z和 8D 各占一个字节,该命令可以用这五个字节来替代存储单 元 DS:0100 到 0104 的原先的内容。 格式 2:则是采用逐个单元相继修改的方法。命令格式为:-E address 例如,-E DS:100则可能显示为:18E4:0100 89.-如果需要把该单元的内容修改为 78,则用户可以直接键入 78,再按“空格”键可接 着显示下一个单元的内容,如下:18E4:0100 89.78 1B.- 这样,用户可以不断修改相继单元的内容,直到用 ENTER 键结束该命令为止。 填写命令 F(FILL),其格式为:-F range list 例如:-F 4BA:

14、0100 5 F3XYZ8D使 04BA:01000104 单元包含指定的五个字节的内容。如果 list 中的字节数超过指定 的范围,则忽略超过的项;如果 list 的字节数小于指定的范围,则重复使用 list 填入,直 到填满指定的所有单元为止。 3、检查和修改寄存器内容的命令 R(register),它有三种格式如下: 显示 CPU 内所有寄存器内容和标志位状态,其格式为:-R 例如,-r AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=01

15、00 NV UP DI PL NZ NA PO NC 18E4:0100 C70604023801 MOV WORD PTR 0204,0138 DS:0204=0000 显示和修改某个寄存器内容,其格式为: -R register name 例如,键入-R AX系统将响应如下:AX F1F4: 即 AX 寄存器的当前内容为 F1F4,如不修改则按 ENTER 键,否则,可键入欲修改的内容, 如:-R bxBX 0369:059F 则把 BX 寄存器的内容修改为 059F。 显示和修改标志位状态,命令格式为: -RF系统将响应,如:OV DN EI NG ZR AC PE CY-此时,如不修改其内容可按 ENTER 键,否则,可键入欲修改的内容,如:OV DN EI NG ZR AC PE CY - PO NZ DI NV 即可,可见键入的顺序可以是任意的。PSW 中标志位的符号表示标志名标志名标志为标志为 1 1标志为标志为 0 0OF 溢出(是/否)OVNV DF 方向(减量/增量)DNUP IF 中断(允许/关闭)EIDI SF 符号(正/负)NGPL ZF 零(是/否)ZRNZ AF 辅助进位(是/否)ACNA PF 奇偶(奇/偶)PEPO CF 进位(是/否)CYNC4、运行命令 G,其格式为:-G=address1address2address3其

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号