当前位置:首页 > 微机原理及接口技术实验报告
实验一 DEBUG命令及其基本操作
一.实验目的:
1. 熟练掌握DEBUG的常用命令,学会用DEBUG来调试程序。
2. 深入了解数据在存储器中的存取方法,了解堆栈中数据的压入与弹出方法。 3. 掌握各种寻址方法,了解简单指令的执行过程。
二、实验内容:
1.打开计算机,在WINXP操作系统下,点击“开始”,选择“运行”,在“打开”一栏中输入“debug”,运行DEBUG应用程序,将出现DEBUG的提示符“-”。 2.在DEBUG提示符后键入字母“-a100”,回车后,屏幕上就会出现下面类似的内容:
(具体到每个计算机所产生的段地址和偏移地址可能有所不同)
这表示在地址1383:0100处,DEBUG等待用户键入程序助记符,下面键入程序:
3.在DEBUG的提示符后键入G,这是执行程序的命令,然后回车,就可以看到结果了。
4.现在让我们用“d”命令来看一下存储器
在100H~107H这8个单元内,程序覆盖了原来的内容,右边的字符是组成程序的ASCII码等价字符,圆点表示不可显示字符。
5.下面我们用反汇编命令来查看一下所键入的程序。“U”命令的格式是“U起始地址,终止地址”,即把起始地址到终止地址之间的十六进制码反汇编成汇编语言助记符语句。键入:
大家在屏幕上不仅可以看到地址和助记符,而且还可以看到与汇编语言等价的机器语言。 6.现在我们修改存储单元的内容,看看显示情况和变化。
我们看到显示的结果发生了变化,这是因为DOS的2号功能调用是显示输入数据的ASCII码字符。
7.下面我们给程序命名并存盘。在键入“n”后紧跟程序名及扩展名
因为文件的字节数必须事先放在BX和CX中,其中BX保存高16位,CX保存低16位,整个32位的数保存文件的字节数,一般来说,BX设置为0,因为CX可存放的字节数为64K,对于一般的程序已足够了。
8.结束后可用Q命令退出DEBUG程序。
三、实验习题
1.写出完成下列功能的指令序列 (1)传送20H到AL寄存器 (2)将(AL)*2
(3)传送25H到BL寄存器 (4)(AL)*(BL) 问最后的结果(AX)=?
单步执行结果:
2.分别写出完成下列指令要求的指令: (1)将BX的低4位清零; (2)将AX的高4位置1; (3)将DX的低4位取反; (4)将CX的中间八位清零;
(5)将AX中与BX中的对应位不相同的位均置1.
解答:(1)and bx,fff0。设bx=c4b5,则
运行结果
(2)or ax,f000。设ax=c4b5,则
运行结果
(3)xor dx,000f。设dx=c4b5,则
运行结果
(4)and cx,f00f。设cx=c4b5,则
运行结果
(5)xor ax,bx。设ax=c4b5,bx=5229,则
运行结果
3.上机运行下面指令序列,分析运行后(AX)=? MOV AX,4312 MOV CL,8 SAR AL,CL DEC AX MOV CX,8 MUL CX
运行结果
4.设DS=当前段地址,BX=0300H,SI=0002H,请用DEBUG的命令将存储器偏移地址300H~305H 连续单元装入0AH,0BH,0CH,0DH,0EH,0FH。在DEBUG状态下送入下面的程序,并用单步执行的方法,分析每条指令源地址的形成过程?当数据传送完毕时,AX中的内容是什么? 程序清单如下:
共分享92篇相关文档