您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 电气工程及其自动化1003《计算机综合实践9002》邱晓帆
四川大学网络教育学院实践课程报告实践课程计算机综合实践9002校外学习中心重庆黔江奥鹏学习中心[20]VIP专业电气工程及其自动化层次专升本年级1003学生姓名邱晓帆学号aDH1001g10032011年8月10日实验内容:一、熟悉、使用DEBUG调试工具[摘要]借助DEBUG调试工具来发现汇编语言程序的错误所在并加以改正。通过实验,掌握DEBUG的常用基本命令,学会如何在windows的命令模式下启动DEBUG,进而学会如何使用DEBUG查看CPU和内存,以及进行程序的跟踪调试等。1实验目的1.1学习如何在Windows的命令模式下启动DEBUG。1.2掌握DEBUG的常用基本命令。1.3学习如何使用DEBUG查看CPU和内存以及进行跟踪调试。2实验设备及软件环境装有DOS系统及MASM6.X的微机一台。3预备知识3.1什么是DEBUG?Debug是DOS、Windows都提供的实模式(8086方式)程序的调试工具。使用它,可以查看CPU各种寄存器的内容、内存的情况和在机器码级跟踪程序的运行。3.2常用的Debug命令及其含义表1.1Debug命令及其含义命令格式功能说明R[寄存器名]查看、改变CPU寄存器的内容D[范围]查看指定范围内的内存中的内容E起始地址字节值表用值表中的值替换从“起始地址”开始的内存单元中的内容U[范围]反汇编,将内存中的机器指令翻译成汇编指令T[=地址][指令数]执行一条机器指令A[地址]以汇编指令的格式在内存中写入一条机器指令Q退出Debug,回到DOS状态4启动DEBUG4.1打开Windows命令窗口选择“开始”→“运行”→输入“cmd”命令4.2启动DEBUG在命令窗口中启动DEBUG,将显示连接符“-”,这时可输入各种DEBUG命令。4.3关于使用命令的几点说明:在提示符“-”下才能输入命令,在按“回车”键后,该命令才开始执行;命令是单个字母,命令和参数的大小写可混合输入;可用F1、F2、F3、Ins、Del、→等编辑键来编辑本行命令;当命令出现语法错误时,将在出错位置显示“^Error”;在DEBUG中使用的数都是以十六进制来表示的。5实验内容5.1R命令作用:查看、改变CPU寄存器的内容(1)显示所有寄存器之中的内容:输入R我们重点关注AX、BX、CX、DX、CS及IP寄存器的内容,其他寄存器SP、BP、SI、DI、ES、SS及标志寄存器先不予理会。此外,并列出了CS:IP所指向的内存单元处所存放的机器码,并将它翻译为汇编指令。(2)改变寄存器中的内容:输入RAX在提示符“:”后输入1111,即可将AX的值设置为1111。在输入R命令,查看修改后的寄存器值。5.2D命令作用:查看指定范围内的内存中的内容(1)直接输入D命令DEBUG将输出3部分内容,查看执行结果。说明:左边是每行的起始地址,用“XXXX:YYYY”表示,其中XXXX表示内存单元的段地址,YYYY表示内存单元的偏移量;中间以十六进制的形式显示从指定地址开始的128个内存单元的内容,每行显示16个字节的内容;右边显示每个内存单元中的数据对应的可显示的ASCII码字符,若没有对应可显示的ASCII码字符,DEBUG用“.”来代替。(2)执行带参数的D命令若执行带参数的命令D,DEBUG将显示指定地址范围的内容。带参数的方式有三种。方式一:D起始位置DEBUG从起始位置开始显示128个字节的内容。输入命令:D1AF5:100方式二:D起始位置结束位置DEBUG从起始位置开始一直显示到结束位置。输入命令:DDS:10011F方式三:D起始位置L长度DEBUG命令从起始位置开始显示指定长度内容。输入命令:DDS:100L10使用带参数的D命令后,接着使用D命令,可列出后续的128个内存单元的内容。5.3E命令格式:E起始地址字节值表或E起始地址作用:用值表中的值替换从“起始地址”开始的内存单元中的内容例1:将内存1000:0~1000:9单元中的内容分别写为0、1、2、3、4、5、6、7、8、9,可用“E起始地址数据数据数据数据数据……”的格式来进行。步骤:①用D命令查看1000:0~1000:f单元的内容:D1000:0f②用E命令修改从1000:0开始的10个单元中的内容:E1000:00123456789③用D命令查看1000:0~1000:f单元中内容的变化:D1000:0f例2:用E命令向内存中写入字符。从内存1000:0开始写入:数值1,字符“a”,数值2,字符“b”,数值3,字符“c”。步骤:①用D命令查看1000:0处的内容:D1000:0②用E命令输入:E1000:01‘a’2‘b’3‘c’③用D命令查看1000:0~1000:f单元中内容的变化:D1000:0f例3:用E命令向内存中写入字符串。从内存1000:0开始写入:数值1,字符串“a+b”,数值2,字符串“c++”,数值3,字符“IBM”。步骤:①用D命令查看1000:0处的内容:D1000:0②用E命令输入:E1000:01‘a+b’2‘c++’3‘IBM’③用D命令查看1000:0~1000:f单元中内容的变化:D1000:0例4用E命令以提问的方式来逐个地修改从某一地址开始的内存单元中的内容。以从1000:10单元开始为例。步骤:①用D命令查看1000:10处的内容:D1000:10②用E命令输入:E1000:10,按Enter键③DEBUG将显示起始地址1000:0010以及第一个单元(即1000:0010单元)的原始内容:00.,然后光标停在“.”的后面,提示输入想要写入的数据,此时有两种选择:其一输入数据,完后按空格键,即用输入的数据改写当前的内存单元;其二不输入数据,直接按空格键,则表示不对当前内存单元进行改写④当前单元处理完成后(不论是改写或者没有改写,只要按了空格键,就表示处理完成),DEBUG将显示下一个内存单元的原始内容,并提示进行修改,可以用同样的方法进行处理⑤所有希望改写的内存单元改写完毕后,按ENTER键,E命令结束⑥用D命令查看1000:10单元中内容的变化:D1000:106实验任务C:\debug-F10017F00-A1000B3E:0100MOVDL,010B3E:0102MOVAH,020B3E:0104INT210B3E:0106INT200B3E:0108-NC:\1ST.COM-RBXBX0000:-RCXCX0000:8-W100Writing00008bytes-QC:\在dos下执行程序C:\dir1st*.*VolumeindriveCisNTFSCCCCVolumeSerialNumberisFC03-2958DirectoryofC:\2010-8-1818:5181ST.COM1File(s)8bytes0Dir(s)1,080,619,008bytesfreeC:\1st☺C:\方法一:C:\DEBUG1ST.COM-G=100☺Programterminatednormally方法二:C:\DEBUG-NC:\1ST.COM-L100-G=100☺Programterminatednormally借助DEBUG调试工具来发现汇编语言程序的错误所在并加以改正。7体会这次实验,因为要自己去设计整个过程,所以就去了解学习自己原来并没有真正弄懂的东西。比如一些程序的代码的意思,汇编语言的逻辑。使我对前面所做的实验有了原理性的了解,回头看一些实验,也知其然其所以然了。同时对课本上讲的一些内容,不再像以前那样觉得抽象,通过这次设计,有了具体的理解。二、设计汇编语言程序1实验目的进行程序设计实验,掌握汇编语言程序。实验包括对字符串统计程序进行设计;设计双字乘法程序设计;设计字符串统计程序设计双字乘法程序设计。掌握宏汇编中的标号的使用学会使用msam编写简单的程序2预备知识汇编语言程序设计是一门实践性很强的课程。编写程序、上机调试、运行程序是进一步学习和掌握汇编语言程序设计的必要手段。在编译汇编程序后,需要进行调试,DEBUG.EXE是DOS提供的用于调试可执行程序的工具软件,是汇编语程序设计中常用的调试工具。在DEBUG环境下,不但可以调试经汇编、连接生成的可执行程序,也可以编写简单的程序。调试汇编语言程序,能使用户接触到计算机内部,允许用户直接观察和修改CPU的寄存器;能观察、修改内存单元;允许直接输入机器指令并单步执行;能反汇编程序。可以说,debug是观察和了解计算机内部运行情况的有利助手。3汇编语言源程序上机操作过程3.1源程序上机过程流程图开始建立源文件Y有人工检查吗?修改源程序NASM文件存盘调MASM程序汇编源文件Y有语法错误?N调LINK程序,连接目标文件?连接有错?EXE文件存盘用DELBUG查错执行EXE文件Y结果有错?N结束3.2实验步骤1)编写一段代码(m.asm)功能是:显示字符串datasegmentmovax,numnumdw8072horax,axdataendsjnsdonecodesegmentnegaxassumecs:code,ds:datamovnum,axstartprocfardone:rtepushdsstartendpxorax,axcodeendspushaxendstartmovax,datamovds,ax2)在DOS提示符下键入:对名为m.asmd的文件进行编译,连接生产.obj和.exe文件:-cd..-cd..-cd\masm-msam-m-linkt-debugm.exe得到可执行文件后就可以直接调用可执行文件名,从盘上调到内存中运行。程序及运行结果(或实验数据记录及分析)3)编写一段代码(m.asm)功能是:显示字符串datasegmentlp3:cmpax,64hmovdl,[bx+si]sdb4dup(?)movds,axadddl,30hxdb?jblp4int21hdataendsincdlincsicodesegmentsubax,64hlooplp7assumecs:code,ds:datajmplp3movah,1start:movax,datalp4:movs+1,dlint21hmovds,axmovdl,0movah,4chmovbx,1lp5:cmpax,0ahint21hmovax,0jblp6codeendsmovcx,100incdlendstartlop:addax,bxsubax,0ahincbxjmplp5looploplp6:movs+2,dlmovdl,0movs+3,allp1:cmpax,3e8hmovbx,offsetsjblp2movsi,0incdlmovah,2subax,3e8hmovcl,4jmplp1lp7:movdi,[bx+si]lp2:movs,dlordi,30hmovdl,04)在DOS提示符下键入:对名为m.asmd的文件进行编译,连接生产.obj和.exe文件:-cd..-cd..-msam-linkt-cd\masm–m-debugm.exe程序及运行结果(或实验数据记录及分析)4体会编写好一个程序后,要想在计算机中调试、运行,必须要有一个程序来支持程序的编辑、修改等操作。这种支援程序叫编辑程序。编辑程序有很多种,但按功能划分,主要有两大类。一类是行编辑程序,如EDIT编辑程序;另一类是全屏幕编辑程序如QuickEdit(QE)。行编辑程序功能较弱,不如全屏幕编辑程序方便、灵活。在编辑汇编语言的源程序时,可以使用已熟悉的。三、8253定时器/计数器接口与数字电子琴[摘要]选择利用实验仪扬声器/PC机内8253驱动内扬声器改变定时器2的计数值来改变声音频率,通过编程来获得声调(频率)和节奏(延时长短),利用键盘1、2、3、4、5、6、7、8设计一个电子琴,通过按数字键响相应的乐符1、2、3、4、5、6、7、i,使能演奏简单的乐曲。使计算机演奏出乐曲来。1实验目的检验和提高我在原理与接口综合应用方面分析问题与
本文标题:电气工程及其自动化1003《计算机综合实践9002》邱晓帆
链接地址:https://www.777doc.com/doc-3177852 .html