微机实验作业
- 格式:doc
- 大小:1.83 MB
- 文档页数:77
微型计算机实验一实验报告一、实验目的本次微型计算机实验的主要目的是让我们熟悉微型计算机的硬件组成,了解计算机各部件之间的连接和工作原理,并掌握基本的计算机组装和调试技能。
通过实际操作,提高我们对计算机系统的认识和动手能力,为今后的学习和工作打下坚实的基础。
二、实验设备与工具1、计算机主机箱、主板、CPU、内存、硬盘、显卡、声卡、网卡等硬件设备。
2、螺丝刀、镊子、防静电手环等工具。
三、实验内容1、了解计算机硬件组成打开计算机主机箱,观察主板、CPU、内存、硬盘、显卡、声卡、网卡等硬件设备的外观和安装位置。
学习各硬件设备的功能和作用,如 CPU 负责运算和控制,内存用于临时存储数据,硬盘用于长期存储数据等。
2、计算机硬件组装戴上防静电手环,防止静电对硬件设备造成损坏。
首先安装 CPU,将 CPU 对准主板上的插座,轻轻放下,然后扣紧CPU 插座的扳手。
安装内存,将内存插槽两端的卡扣掰开,将内存条对准插槽,用力按下,直到两端的卡扣自动扣紧。
安装硬盘,将硬盘固定在机箱的硬盘架上,然后连接数据线和电源线。
安装显卡,将显卡插入主板上的 PCIE 插槽,并用螺丝固定。
安装声卡和网卡,根据主板的接口类型,将声卡和网卡插入相应的插槽。
连接机箱前面板的线缆,包括电源按钮、重启按钮、指示灯、USB 接口等。
3、计算机硬件调试检查各硬件设备的安装是否牢固,连接是否正确。
接通电源,按下电源按钮,观察计算机能否正常启动。
如果计算机无法启动,根据报警声和指示灯的提示,查找故障原因并进行排除。
四、实验步骤1、准备工作清理实验台,将所需的硬件设备和工具摆放整齐。
阅读计算机硬件组装的相关资料,了解组装的流程和注意事项。
2、硬件组装按照上述步骤,依次安装 CPU、内存、硬盘、显卡、声卡、网卡等硬件设备,并连接好线缆。
3、硬件调试检查组装完成的计算机,确保没有遗漏的部件和连接错误。
接通电源,按下电源按钮,观察计算机的启动情况。
如果计算机无法启动,首先检查电源是否正常,然后检查各硬件设备的连接是否松动。
微机原理软件实验实验1 两个多位十进制数相加的实验实验内容:将两个多位十进制数相加,要求加数和被加数均以ASCII码形式各自顺序存放以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
完整代码如下:DATAS SEGMENT;此处输入数据段代码STRING1 DB'input the first number:','$'STRING2 DB 13,10,'input the second number:','$'STRING3 DB 13,10,'the output is:','$'DATA1 DB 6 DUP(00H),'$'DATA2 DB 6 DUP(00H),'$'DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AX;此处输入代码段代码LEA SI,DATA1LEA DI,DATA2L0:LEA DX,STRING1;打印字符串STRING1MOV AH,09INT 21HINPUT1: ;输入第一个数MOV AH,01;输入字符至AL中INT 21HCMP AL,'/'JE L1MOV [SI],ALINC SIJMP INPUT1L1:LEA DX,STRING2;打印字符串STRING2MOV AH,09INT 21HINPUT2: ;输入第二个数MOV AH,01;输入字符至ALINT 21HCMP AL,'/'JE L2MOV [DI],ALINC DIJMP INPUT2L2:MOV SI,0CLC;清空进位标志位CFMOV CX,6PLUSE: ;相加;SUB DATA1[SI],30H;SUB DATA2[SI],30H;这里不能使用这两条指令,因为如果DATA1[5]=00H,00H-30H需要借位相减,使CF=1MOV AL,DATA1[SI]ADC AL,DATA2[SI]AAA;加法调整指令,可使两个ASCII数直接相加MOV DATA1[SI],AL;和赋给DATA1[SI]INC SILOOP PLUSEL3:LEA DX,STRING3;打印字符串STRING3MOV AH,09INT 21HMOV CX,6MOV SI,6SHOW:DEC SICMP DATA1[SI],00HJE SHOWSHOW2:MOV DL,DATA1[SI]ADD DL,30HMOV AH,02INT 21HCMP SI,0JE L4DEC SIJMP SHOW2L4: MOV AH,4CHINT 21HCODES ENDSEND START运行结果如下:输入为低位在前,即输入1234和99999相加实际上是4321和99999相加(即:4321+99999=104320)实验2 两个数相乘的实验(无符号数相乘)实验内容:实现十进制数的乘法。
《微机原理与应用》实验报告
实验序号:实验二实验项目名称:熟悉调试程序DEBUG
学号姓名专业、班
实验地点实1_314 指导教师周明实验时间2013-10-29
一、实验目的及要求
1、熟悉dos常用指令:dir,cd,path,copy,cls,exit,help等。
2、熟悉调试程序DEBUG
3、掌握常用DEBUG命令:
-A 汇编-U 反汇编
-T 单步执行-G 断点执行
-D 数据显示-R 寄存器
4、通过简单程序练习,熟悉程序格式
5、单步运行程序,通过观察窗口观察指令对寄存器中数据的影响
二、实验设备(环境)及要求
PC机一台。
三、实验内容与步骤
1进入dos界面,在运行界面输入cmd,然后输入debug:
输入指令r:
输入指令?:
输入指令-u
输入汇编指令,并开始编译
输入显示指令-d和进行单步执行-t:
求1到100累加,总和超过1000就停止的数:所以结果为(040B)h。
单步执行并显示:
四、实验结果与数据处理
五、分析与讨论
六、教师评语
成绩
签名:
日期:。
一、实验序号、题目实验序号:XX题目:微机逻辑作业实验二、作者姓名:[你的姓名]学号:[你的学号]班级:[你的班级]三、实验目的与原理1. 实验目的(1)加深对微机逻辑电路基本原理的理解。
(2)掌握逻辑门电路的组成和功能。
(3)学会使用逻辑门电路进行组合逻辑电路和时序逻辑电路的设计。
(4)提高动手能力和实验技能。
2. 实验原理(1)逻辑门电路是数字电路的基本组成单元,主要包括与门、或门、非门、异或门等。
(2)组合逻辑电路是由逻辑门电路构成的,其输出仅与当前输入有关,与电路历史状态无关。
(3)时序逻辑电路是由组合逻辑电路和存储单元构成的,其输出不仅与当前输入有关,还与电路历史状态有关。
四、实验对象1. 实验仪器:示波器、逻辑分析仪、数字万用表、实验箱、逻辑门电路板、信号源等。
2. 实验材料:逻辑门电路芯片、电阻、电容、导线、开关等。
五、实验步骤与观察项目1. 组合逻辑电路实验(1)搭建与门、或门、非门、异或门等基本逻辑门电路。
(2)观察输入信号与输出信号的关系,验证逻辑门电路的功能。
(3)设计组合逻辑电路,如编码器、译码器、加法器等。
(4)测试电路功能,分析电路性能。
2. 时序逻辑电路实验(1)搭建D触发器、JK触发器、计数器等时序逻辑电路。
(2)观察输入信号与输出信号的关系,验证时序逻辑电路的功能。
(3)设计时序逻辑电路,如分频器、定时器等。
(4)测试电路功能,分析电路性能。
六、实验结果1. 组合逻辑电路实验结果(1)与门、或门、非门、异或门等基本逻辑门电路功能正常。
(2)设计的组合逻辑电路功能符合预期。
2. 时序逻辑电路实验结果(1)D触发器、JK触发器、计数器等时序逻辑电路功能正常。
(2)设计的时序逻辑电路功能符合预期。
七、讨论1. 通过本次实验,加深了对微机逻辑电路基本原理的理解。
2. 学会了使用逻辑门电路进行组合逻辑电路和时序逻辑电路的设计。
3. 提高了动手能力和实验技能。
4. 发现了实验过程中存在的问题,如电路搭建不规范、信号连接错误等,及时进行了修正。
实验一ARM汇编基础实验1.掌握ARM汇编指令2.学习掌握C与汇编混合编程基础3.熟练使用ARM调试工具RVDS进行调试操作1.熟悉ARM汇编2.用ARM汇编实现1+2+...+N3.C调用汇编实验(实现字符串拷贝功能)4.汇编调用C实验5.ARM汇编实现冒泡算法(选做)1. ARM汇编、C语言2. RVDS工具硬件:PC 机Pentium100 以上软件:Windows操作系统,RVDS软件1.在汇编中使用C定义的全局变量在汇编和C之间进行一些数据的传递,最简便的办法就是使用全局变量。
在汇编中调用C中定义的全局变量,需要在汇编中IMPORT 对应的全局变量。
IMPORT 伪指令用于通知编译器要使用的标号或变量在其他的源文件中定义。
例如:汇编文件asmfile.s想调用C文件cfile.c中定义的全局变量a,则在汇编文件asmfile.s 前面要添加:IMPORT a2.在汇编中调用C的函数要在汇编中调用C文件中定义的函数,主要做两方面的工作:首先:需要在汇编中IMPORT 对应的C函数名。
其次:在调用该C函数之前还需要通过汇编语言传递该函数的参数。
C和汇编之间的参数传递是通过A TPCS(ARM Thumb Procedure Call Standard)的规定来进行的。
简单的说就是如果函数有不多于四个参数,对应的用ARM寄存器R0-R3来进行传递,多于4个时借助栈。
函数的返回值通过R0来返回。
3.在C中调用汇编的函数在C中调用汇编文件中的函数,要做的主要工作有两个:一:是在C中声明函数原型,并加extern关键字;二:是在汇编中用EXPORT导出函数名,并用该函数名作为汇编代码段的标识,最后用mov pc,lr返回。
然后,就可以在C中使用该函数了。
EXPORT伪指令用于在程序中声明一个全局的标号,该标号可在其他的文件中引用。
1、用ARM汇编实现1+2+….n的运算。
2、理解C和汇编,并用汇编程序实现字符串拷贝,并在C程序中调用该汇编程序。
《微机原理及应用》实验报告班级:班学号:姓名:实验时间:4.13 同组同学:实验成绩:实验名称:软件实验一、实验目的:掌握8088汇编语言程序设计和调试方法,熟悉键盘操作。
掌握汇编语言设计和调试方法。
进一步掌握汇编语言设计和调试方法。
掌握RAM中的数据操作。
熟悉8088指令系统,掌握程序设计方法。
二、实验内容:1.把RAM区内4000H~40FFH单元的内容清零。
思考:假使把4000H~40FFH中的内容改成FF,如何修改程序。
2.把4000H的内容拆开,高位送4001H低位,低位送4002H低位,4001H、4002H高位清零,一般本程序用于把数据送显示缓冲区时用。
3.把4000H、4001H的低位分别送入4002H高低四位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
4.把4100H源RAM区首地址内的16字节数据传送到4200H目标RAM区。
5.编写并调试一个排序子程序,其方法为用冒泡法将RAM中的几个单元字节无符号的正整数,按从小到大的次序重新排列。
思考:编一程序把4000H~400AH中内容按从小到大排列。
三、程序框图及电路连接图程序1:程序3:程序2:程序4:程序5:四、源程序清单(注释部分请手写)五、程序1:六、程序2:七、程序3:八、程序4:九、程序5:五、程序运行结果程序1结果:运行前:运行后:思考:程序2结果:运行前:运行后:程序3结果:运行前:运行后:程序4结果:运行前:运行后:程序5结果:运行前:运行后:思考:六、思考题(内列实验课程中老师所列额外要求并回答,解答中要交代清楚针对程序几,对第几行进行什么修改,为什么进行这样的修改,如果需要修改的地方太多,可以参照源程序清单格式列份表格)程序1:第三条指令MOV AX,00H→MOV AX,0FFFFH(将0FFFF送到AX中,进行循环,因为BX+2,所以单单0FF是不行的。
)程序5:第六条指令CMP AL,AH →CMP AH,AL第十三条指令:XCHG AL,AH→XCHG AH,AL(将比较的顺序换下,原来是将大的一个放在前面,顺序换了后小的就放在前面,所以就实现了从小到大的排序。
微机实验作业两个多位十进制数相加实验二两个多位十进制数相加一、要求:将两个多位十进制数(如四位)相加,要求被加数、加数以ASCII 码形式按顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前)。
结果显示在屏幕上。
二、目的:1、学习数据传送和算术运算指令的用法。
2、熟悉在PC机上建立、汇编、连接、调试和运行汇编语言程序过程。
程序如下:STACK SEGMENT STACK 'STACK'DW 100H DUP(?)STACK ENDSDA TA SEGMENTADD1 DD H ;加数以组合十进制形式存放在双字单元ADD2 DD HSUM DD ?DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,ES:DATA,SS:STACKSTART: MOV AX,DA TAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA SI,ADD1 ;将16位偏移地址传送到通用寄存器中LEA DI,ADD2LEA BX,SUMMOV AL,[SI]ADD AL,[DI] ;最低位的一个字节相加DAA ;加法组合BCD码调整MOV [BX],AL ;结果存放在SUM第一个字节MOV AL,[SI+1] ;第二个字节相加ADC AL,[DI+1]DAAMOV [BX+1],ALMOV AL,[SI+2]ADC AL,[DI+2]DAAMOV [BX+2],ALMOV AL,[SI+3]ADC AL,[DI+3]DAAMOV [BX+3],ALMOV DL,00 ;最高位字节有进位则显示"01" ADC DL,00 CALL DISPSUMMOV AH,4CH ;返回DOSINT 21HDISPSUM PROC NEAR ;结果显示子程序PUSH AXPUSH BXPUSH CXPUSH SIMOV SI ,4PUSH DXMOV CX,5LAB:PUSH CXPUSH BXMOV AL,DLMOV BL,DLMOV CL,4 ;显示高位字节SHR AL,CLADD AL,30HMOV AH,02MOV DL,ALINT 21H ;显示一位字符AND BL,0FH ;显示低位字节ADD BL,30HMOV AH,02MOV DL,BLINT 21HPOP BXPOP CXDEC SIMOV DL,[BX][SI] ;结果显示LOOP LAB POP DXPOP SIPOP CXPOP BXPOP AXRETDISPSUM ENDPCODE ENDSEND START。
微机技术综合实验课程报告题目交通灯控制设计学生姓名李松阳张磊学号***********/68院系信息与控制学院专业自动化指导教师陈逸菲二OO一三年十二月二十七日目录交通灯控制设计--------------------------------------------------------------1 预期功能------------------------------------------------------------------------------------------------------1 设计方案------------------------------------------------------------------------------------------------------1 硬件电路设计------------------------------------------------------------------------------------------------2 软件设计------------------------------------------------------------------------------------------------------2 仿真结果------------------------------------------------------------------------------------------------------6 小结------------------------------------------------------------------------------------------------------------8 参考文献------------------------------------------------------------------------------------------------------8交通灯控制设计李松阳张磊南京信息工程大学自动化系南京 210044摘要:随着社会经济的发展,城市交通问题越来越引起人们的关注.人、车、路三者关系的和谐,已成为交通治理部分须要解决的主要问题之一.城市交通节制系统是用于城市交通数据监测、交通讯号灯把持与交通劝导的盘算机综合治理体系,它是现代城市交通监控指挥体系中最主要的组成部分.随着城市灵活车量的不断增添,很多大城市如北京、上海、南京等呈现了交通超负荷运行的情形,因此,自80年代后期,这些城市纷纭修建城市高速道路,在高速途径建设完成的初期,它们也曾有效地改良了交通状态.然而,随着交通量的快速增加和缺少对高速道路的系统研讨和掌握,高速道路没有充足施展出预期的作用.而城市高速道路在结构上的特色,也决议了城市高速途径的交通状态必定受高速道路与普通途径耦合处交通状态的制约.所以,如何采取适合的控制方式,最大限度应用好消耗巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地域的交通拥堵状况,越来越成为交通运输治理和城市计划部分亟待解决的重要问题.为此,本文就城乡交通灯模仿控制系统的电路原理、设计盘算和试验调试等问题来进行具体剖析讨论. 本设计以proteus仿真软件为载体,结合,8086芯片、8255芯片、8253芯片、74LS138芯片以及7段数码管等的功能,用汇编语言编程实现了十字路口交通灯的模拟实验。
实验名称:微机组装实验实验时间:2023年4月15日实验地点:计算机实验室实验目的:1. 熟悉微型计算机的基本组成和工作原理。
2. 学会组装微型计算机的基本步骤和方法。
3. 培养动手能力和团队协作精神。
实验器材:1. 主板1块2. CPU 1个3. 内存条2根4. 硬盘1块5. 光驱1个6. 显卡1块7. 电源1个8. 机箱1个9. 鼠标1个10. 键盘1个11. 螺丝刀1把12. 螺丝若干13. 计算机电源线1条14. 数据线1条15. 主板跳线1条实验步骤:1. 准备工作(1)将所有器材放在实验桌上,检查是否齐全。
(2)将主板、CPU、内存条、硬盘、光驱、显卡等部件进行清灰处理。
2. 组装主板(1)将主板放在机箱底部,注意主板上的插槽和接口方向。
(2)将CPU安装到主板上,注意安装方向,插入CPU插槽,并固定好。
(3)将内存条安装到内存插槽中,注意安装方向,确保内存条卡扣卡紧。
(4)将硬盘和光驱安装到机箱的硬盘架上,连接好电源线和数据线。
(5)将显卡安装到主板的PCI-E插槽中,注意安装方向,确保显卡卡扣卡紧。
(6)将电源线连接到主板的相应接口,注意连接方向。
3. 组装电源(1)将电源安装在机箱的电源架上,注意电源的安装方向。
(2)将电源线连接到各个硬件设备,包括主板、硬盘、光驱、显卡等。
4. 组装机箱(1)将机箱后部的挡板安装好,将电源、硬盘、光驱等设备的电源线和数据线连接到机箱的相应接口。
(2)将键盘、鼠标连接到主板的USB接口。
(3)将显示器、音响等外部设备连接到机箱的相应接口。
5. 启动计算机(1)打开电源,检查各个硬件设备是否正常工作。
(2)进入BIOS设置,检查硬件配置是否正确。
(3)安装操作系统和驱动程序。
实验结果:通过本次实验,成功组装了一台微型计算机。
在组装过程中,严格按照实验步骤进行操作,确保了各个硬件设备的正确连接和安装。
计算机启动后,系统运行稳定,各项功能正常。
实验心得:1. 在组装计算机的过程中,要熟悉各个硬件设备的功能和安装方法,确保安装正确。
实验一:利用DEBUG调试程序进行寻址方式与指令系统实验一、实验目的:1、联系掌握DEBUG调试程序的使用2、加深对汇编语言指令、机器码、寻址方式等基本内容的理解二、实验设备:计算机三、实验内容:1、DEBUG调试程序的启动2、练习D、E、F、R、A、U、T、G、N、L、W、I、O、Q等指令的使用,观察其运行结果,掌握这些命令的使用方法3、通过DEBUG程序输入一汇编语言程序段,单步跟踪调试,观察寄存器的变化和指令执行的结果,加深对指令的理解。
四、DEBUG调试程序的使用一)、DEBUG的启动在DOS系统提示符下,运行DEBUG命令即可启动。
命令格式:DEBUG [文件名全称] 功能:启动DEBUG调试程序,并把指定名字的文件装载入内存,以供调试。
说明:启动DEBUG,实际就是让计算机执行DEBUG.EXE这个调试程序。
若该程序不在当前目录下,需要在命令中指定该程序所在的位置路径(包括(包括其所在磁盘和文件夹)。
文件名全称指定要调试的文件名及其所在的位置路径。
若指定该选项,则在启动DEBUG时把该文件装载入内存,以供调试,该文件一般是EXE文件或COM文件。
若不指定该选项,则只启动DEBUG,不装载文件。
二)、DEBUG常用命令1、D——显示内存单元内容的命令。
2、E——输入内容(修改内存单元内容)命令。
3、F——填充内容(修改内存单元内容)命令4、R——显示和修改寄存器内容命令5、A——汇编命令6、U——反汇编命令7、T——逐条指令跟踪执行命令8、G——程序运行命令9、N——命名命令10、L——装入内存命令11、W——存盘命令。
12、I——端口输入命令13、O——端口输出命令14、Q——退出DEBUG命令五、DEBUG操作步骤:1、DEBUG的进入与退出2、观察及修改CPU内部各寄存器3、观察及修改内存单元的内容4、输入程序5、单步执行程序6、反汇编程序7、执行一段程序六、利用DEBUG学习寻址方式P80 例2-16七、利用DEBUG学习程序段P81 例2-18 2-20八、实验总结实验二 8255并行接口应用实验一.实验目的1. 掌握8255工作方式的编程设计。
微机原理实验指导书东华大学信息信息科学与技术学院二○○八年十月目录实验一DEBUG的启动及其基本命令的使用 (1)实验二内存操作数及寻址方法 (5)实验三汇编语言程序的调试与运行 (7)实验四查表程序设计 (9)实验五系统功能调用 (11)实验六分支程序设计 (12)实验七循环程序设计 (14)实验八子程序设计 (16)实验九综合程序设计 (19)附录一DEBUG命令详解31附录二实验报告 (48)实验的基本要求与方法一、实验目的学习程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。
为后续课程打下坚实的基础。
二、实验要求1.上机前做好充分的准备,包括程序框图、源程序清单、调试步骤、测试方法,对运行结果的分析等。
2。
上机时要遵守实验室的规章制度,爱护实验设备。
要熟悉与实验有关的系统软件(编辑程序、汇编程序、连接程序和调试程序等)的使用方法。
在程序的调试过程中,有意识地学习及掌握debug 程序的各种操作命令,以便掌握程序的调试方法及技巧。
3.每个实验完成后,应写出实验报告,实验报告为word文档。
实验报告要求:(1)设计说明:用来说明程序的功能、结构。
它包括:程序名、功能、原理及算法说明、程序及数据结构、主要符号名的说明等。
(2)调试说明:便于学生总结编程经验提高编程及高度能力。
它包括:调试情况,如上机时遇到的问题及解决办法,观察到的现象及其分析,对程序设计技巧的总结及分析等;程序的输出结果及对结果的分析;实验的心得体会。
(3)程序框图(4)程序清单4. 为了更好地进行上机管理,要求用硬盘存储程序,并建立和使用子目录,以避免文件被别人删除。
为便于统一管理硬盘中的文件,要求实验者在e:\学号目录下建立自己的文件,文件按以下格式命名:字母学号.扩充名,其中字母取a~z的26个英文字母,按实验顺序从a至z排列,学号取后面的6位。
如学号为20043727的学生第三个实验第一个源程序所对应的文件名为c1043727.ASM,本次实验的第二个源程序为c2043727,实验报告对应的文件名为c043727.doc。
实验报告写完后,将源程序文件及实验报告上传到教师机上相应的目录中。
具体目录上机时由指导老师告之。
三、实验的基本方法1. 从教师机下载汇编程序MASM.EXE和连接程序LINK.EXE到学生机的相应文件夹(文件夹以学号命名)下。
2. 进入DOS环境中相应的目录下。
如学生的文件来为:d:\20043727,则对应的操作为(1)选择windows的“开始”→“程序”→“附件”→“命令提示符”(2)在DOS命令提示符下输入如下命令(其中带下划线部分为输入内容)。
C:\Documents and Settings\new>d:D:\>cd 20043727D:\20043727>edit a1043727.asm进入编辑程序,在其环境下输入编好的源程序,然后在盘上生成一个扩展名为.asm的文件。
3. 用宏汇编程序MASM,将扩展名为.ASM的源程序汇编成目标程序,即生成盘上扩展名为.OBJ的文件。
若编过程出现错误,则无法生成目标程序,需要回到编辑程序进行修改,修改后重新汇编直到无错出现。
4. 用连接程序LINK,将扩展名为.OBJ的目标程序连接装配成可执行文件,即在盘上生成扩展名为.EXE的文件。
5. 用调试程序DEBUG,调试扩展名为.EXE的文件,以发现程序中的逻辑错误并进行排除。
实验一 DEBUG的启动及其基本命令的使用一.实验目的:掌握DEBUG 的基本命令及其功能二.实验内容:DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。
1、DEBUG程序的启动在DOS提示符下,可键入命令:C>DEBUG[d:][path][文件名][ 参数1][参数2]其中文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。
在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。
用户可以通过DEBUG 的命令对指定文件进行修改、显示和执行。
如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。
2、DEBUG的主要命令汇编命令A,格式为:-A[地址]该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。
反汇编命令U,有两种格式:1)-U[地址]该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。
2)-U范围该命令对指定范围的内存单元进行反汇编,例如:-U 04BA:0100 0108或–U 04BA:0100 L9此二命令是等效的。
运行命令G,格式为:-G [=地址1][地址2[地址3。
]]其中地址1规定了运行起始地址,后面的若干地址均为断点地址。
追踪命令T,有两种格式:1)逐条指令追踪:-T[=地址]该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。
2)多条指令追踪:-T[=地址][值]该命令从指定地址起执行n条命令后停下来,n由[值]确定。
显示内存单元内容的命令D,格式为:-D[地址]或-D[范围]修改内存单元内容的命令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是程序员键入的。
检查和修改寄存器内容的命令R,它有三种方式:1)显示CPU内部所有寄存器内容和标志位状态;格式为:-RR命令显示中标志位状态的含义如下表所示:2)显示和修改某个指定寄存器内容,格式为:-R 寄存器名例如打入:-R AX系统将响应如下:AX FIF4:表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:-R BXBX 0369:059F则BX内容由0369改为059F3)显示和修改标志位状态,命令格式为:-RF系统将给出响应,如OV DN EI NG ZR AC PE CY-这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。
如OV DN EI NG ZR AC PE CY-PONZDINV命名命令N,格式为:-N 文件名此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W命令把文件装入内存进行调试或者存盘。
装入命令L,它有两种功能:1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为:-L 地址驱动器扇区号扇区数2)装入指定文件,格式为:-L [地址]此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。
在用L命令前,BX和CX中应包含所读文件的字节数。
写命令W,有两种格式:1)把数据写入磁盘的指定扇区:-W 地址驱动器扇区号扇区数2)把数据写入指定文件中:-W [地址]此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。
在用W命令前,BX和CX中应包含要写入文件的字节数。
退出DEBUG命令Q,该命令格式为Q它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。
三.操作步骤1. 调用字处理程序建立源程序文件如图1-1所示。
DATA SEGMENTSTRING1 DB 'Move the cursor backward'STRING2 DB 'Move the cursor backward'MESS1 DB 'Match.',13,10,'$'MESS2 DB 'No Match.',13,10,'$'DATA ENDSSTACK SEGMENT STACKDB 40 DUP (?)STACK ENDSPROGNAM SEGMENTASSUME CS:PROGNAM,DS:DATA,ES:DATA,SS:STACKMAIN PROC FARSTART: XOR AX,AXPUSH AXPUSH DSMOV AX,DATAMOV DS,AXMOV ES,AXMOV AX,STACKMOV SS,AXLEA SI,STRING1LEA DI,STRING2CLDMOV CX,25REPZ CMPSBJZ MATCHLEA DX,MESS2JMP SHORT DISPMATCH: LEA DX,MESS1DISP: MOV AH,09hINT 21HRETMAIN ENDPPROGNAM ENDSEND START图1-12.在DOS环境下,用汇编程序MASM对源文件汇编产生目标文件OBJ,命令格式如下:D:\ASM\MASM 源程序文件名.asm如汇编程序指示出错则需要重新调用编辑程序修改错误,直至汇编通过为止。
3. 用连接程序link产生执行文件exeD:\ASM\LINK 源程序文件名.obj4.执行程序可直接从DOS执行程序如下:D:\ASM\源程序文件名Match此时可看到程序的运行结果。
为了调试程序的另一部分,可重新进行编辑程序修改两个字符串的内容,使它们互不相同,如修改后的数据段为DATA SEGMENTSTRINT1 DB ‘Move the cursor backward.’STRINT2 DB ‘Move the cursor fordward.’Mess1 DB ‘Match.’,13,10,’$’Mess2 DB ‘No Match.’,13,10,’$’DATA ENDS然后,重新汇编、连接、执行,结果为:No match!至此,程序已调试完毕,运行结果正确。
5.用DEBUG调试程序另一种调试程序的方法是使用DEBUG程序。
调用格式如下:D:\asm\DEBUG 源程序文件名.exe此时,DEBUG已将执行程序装入内存,可直接用g命令运行程序。
-gMatch.为了调试程序的另一部分,可在DEBUG中修改字符串内容。
可先用u命令显示程序,以便了解指令地址。
显示结果如图1-2所示-u14F0:0000 1E PUSH DS14F0:0001 33C0 XOR AX,AX14F0:0003 50 PUSH AX14F0:0004 B8E814 MOV AX,14E814F0:0007 8ED8 MOV DS,AX14F0:0009 8EC0 MOV ES,AX14F0:000B B8ED14 MOV AX,14ED14F0:000E 8ED0 MOV SS,AX14F0:0010 8D360000 LEA SI,[0000]14F0:0014 8D3E1800 LEA DI,[0018]14F0:0018 FC CLD14F0:0019 B91900 MOV CX,001914F0:001C F3 REPZ14F0:001D A6 CMPSB14F0:001E 7406 JZ 0026-u14F0:0020 8D163900 LEA DX,[0039]14F0:0024 EB04 JMP 002A14F0:0026 8D163000 LEA DX,[0030]14F0:002A B409 MOV AH,0914F0:002C CD21 INT 2114F0:002E CB RETF图1-2将断点设置在程序的主要部分运行以前,并查看数据区的内容。