《实验一Debug 环境中程序的输入.docx》由会员分享,可在线阅读,更多相关《实验一Debug 环境中程序的输入.docx(5页珍藏版)》请在三一办公上搜索。
1、实验一 Debug 环境中程序的输入实验一 Debug 环境中程序的输入、运行和调试 实验目的: 感性认识“CPU执行一个程序的具体过程”以及“程序的执行对于CPU内部寄存器的影响”; 感性认识“什么是段地址和偏移地址”; 感性认识“补码表示法” 感性认识“ASCII码的用途”。 实验说明: Debug环境的提示符是“”;如果在当前目录中确实存在着一个名叫Debug.exe的外部文件,那么,在DOS的提示符下, 嵌入“Debug”,并且按回车键“Enter”,即可进入Debug环境,见到其提示符“”。 常用的Debug命令是: a x:y用于输入一个汇编语言程序 注意:你不可以键入“x”或者“
2、y”,即是,x和y都必须代之以具体的地址,例如ABC:100 u x:y(回车) 用于显示一个汇编语言程序或者称为“在屏幕上列出一个汇编语言程序”; 自然地,x;y也必须代之以程序的实际的起始地址;通常当一个程序从屏幕上消失后,可以适应这种方法来重新在屏幕上显示改程序。 a x:y也可以用于修改某命令,x:y是将要被修改的指令的地址。 t= x:y用于单步执行一个汇编语言程序,注意,因为是“单步执行”,所以,被执行的程序中包含多少条指令,就应当键入多少个t命令,;单步执行的意义在于:因为CPU没执行完一条指令就会自动停止,而且显示出当前CPU内部每个寄存器的内容,由于程序的结果通常是在CPU的
3、某个或几个寄存器中,这就是为我们考察一个程序的详细执行过程提供了好机会。 g= x:y用于从起始地址x:y连续执行一程序, d x:y用于显示内存区域中的一批数据;x:y是该区域的起始地址。 e x:y用于显示某一个内存单元中的数据内容。数据内容显示出来以后,如果想看下一个内存单元中的数据,可以按“空格键”。数据内容改好之后,若需要修改下一个单元,也是直接按“空格键”。 r(回车)用于显示CPU内部全部寄存器当前的内容。 rAX(回车)用于显示或修改CPU内部寄存器AX中的数据。 q(回车)用于退出Debug环境,返回DOS环境。 实验程序: mov al ,1 dec al sub al ;
4、使CPU内部的AL寄存器 减一 mov bl ,al inc bl add bl ;使CPU中的寄存器BL加一 neg bl mov CX,1 neg CX int 3 ;该指令仅用于Debug 环境中,使一个程序结束 mov ax ,B800 mov DS,ax mov DI ,800 mov cl, 1 mov DI,cl mov ch,5A mov DI+1,ch add DI, 3 ;由于在环境中,数据皆以十六进制的形式显示, mov cl ,2 ;因此在数据之后无须加“”标志 mov DI,cl mov ch,5A mov DI+1,ch add DI,2 mov cl ,1 mov
5、 DI,cl mov ch,5A movDI+1,ch INT 3; 操作要求: 1、 进入debug环境,输入上述程序,单步执行,每执行完一条指令,就记录下CPU内部的、中的数据的变化。 2、 用命令吧内存区域中的数据修改为,,,,,,,,并且观察现象。 3、 用:命令列出改程序,用笔记录其地址、机器语言指令、汇编语言指令。 思考题奥 、 进制数据 在计算机内部有可能具有哪几种不同的含义? 、 用命令能否判断某一个内存单元究竟是属于区还是属于区? 、 在环境中只用十六进制表示数据,主要原因可能是什么? 、 指出上述程序的格式不正确的指令并且改正之。 、 程序中,当执行了指令 和 之后,和CL
6、中存放的数据的大小关系是什么? 、 指令NEG BL的作用是什么?该指令执行之后,BL寄存器中的二进制数据是什么? 、 当用多个t命令单步执行该程序时,每个t命令的执行皆会导致IP的变化,请问:为什么IP的变化幅度会有大有小? 、 CCh是哪一条指令的机器语言代码? I 预习报告 应写在正规实验报纸的正面!并且在第一行写上“预习报告”四个字。 II 预习报告的内容应包括:实验步骤、实验所用命令以及思考题的答案。 II 每次实验之前,请课代表收齐预习报告,教师将检查并且记录预习情况。 IV第一次做实验之前,课代表提供一式两份的班级名单,以供记录实验成绩。 本实验的数据记录表格: 执行mov al,1之后: 执行dec al,1之后: 执行sub al,1之后: 执行mov bl,al之后: AX BX CX DI CS IP 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: 执行 之后: