您好,欢迎访问三七文档
南通大学计算机科学与技术学院微机原理实验报告书班级:智控151学号:1512042022姓名:王建棋南通大学计算机类课程实验报告姓名王建棋学号1512042022学院电气工程学院指导教师胡慧班级智控151实验日期课程名称微机原理实验同组实验者一、实验名称:汇编程序设计初步二、实验目的:学习程序设计的基本方法和技能,进一步加深对微机接口芯片原理及工作过程的理解,熟练掌握用汇编语言设计、编写、调试和运行程序的方法。为后继课程打下坚实的基础。三、实验内容及要求:1.上机前要做好充分的准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。2.上机时要遵守实验室的规章制度,爱护实验设备。要熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)的使用方法及实验仪器。在程序的调试过程中,有意识地学习及掌握debug程序的各种操作命令,以便掌握程序的调试方法及技巧。为了更好地进行上机管理,要求用硬盘储存程序,并建立和使用子目录,以避免文件被别人删除。有关目录及文件操作的DOS命令见附录1。此外,为了便于统一管理硬盘中的文件,要求实验者按以下形式命名实验文件:字母学号后4位.asm其中字母取a~z中的一个字母,按实验顺序从a至z排列。如学号为0431学生的第二个实验程序所对应的文件名应为b0431.asm。3.程序调试完后,须由实验指导教师在机器上检查运行结果。每个实验完成后,应写出实验报告。四、实验环境(包括软、硬件平台)DOS环境,计算机五、实验步骤或程序(注:硬件实验包括电路原理图)(一)、用编辑程序建立扩展名为asm源程序文件DATASEGMENTBUFDB47H,6AHSUMDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,BUFADDAL,BUF+1MOVSUM,ALMOVAH,4CHINT21HCODEENDSENDSTART(二)、用汇编程序对源文件汇编产生扩展名为obj目标文件C:\MASMmasmabc↙(三)、用连接程序link.exe产生扩展名为exe执行文件C:\MASMlinkabc↙(四)、运行程序C:\MASMabc↙(五)、程序调试及结果查看(如不够,请另附纸)六、实验结果1.把程序装入内存,并显示程序清单C:\MASMdebugabc.exe↙-此时,debug已将执行程序装入内存,可键入debug的有关命令调试程序。-U↙用反汇编命令U列出程序清单13E3:0000B8E213MOVAX,13E213E3:00038ED8MOVDS,AX13E3:0005A00000MOVAL,[0000]13E3:000802060100ADDAL,[0001]13E3:000CA20200MOV[0002],AL13E3:000FB44CMOVAH,4CH13E3:0011CD21INT21……2.查看数据段内容或查看寄存器内容-D13E2:0000↙用D命令查看数据段内容13E2:0000476A000000000000-0000000000000000Gj..............可见0000、0001单元内容为数据段定义的内容,分别为47H、6AH。DEBUG状态下,缺省数制为十六进制数。-R↙用R命令查看寄存器内容AX=13E2BX=0000CX=0023DX=0000SP=0000BP=0000SI=0000DI=0000DS=13D2ES=13D2SS=13E2CS=13E3IP=0003NVUPEIPLNZNAPONC若查看指定寄存器内容,在R命令后跟上寄存器名,例:-RAX↙用R命令查看寄存器AX的内容AX13E2:↙若需修改AX的值,则键入新值;若无需更改,按回车。3.用G命令连续运行程序,查看结果-G=0000,000F↙运行程序,0000为运行程序起始地址,000F为断点地址-DDS:0000↙用D命令查看数据段内存结果13E2:0000476AB100000000000000000000000000可见0002单元中内容已变为0000和0001两单元内容之和。4.如果连续得不到正确结果,需分步跟踪运行-T=0000↙0000这所需要运行指令的地址AX=13E2BX=0000CX=0023DX=0000SP=0000BP=0000SI=0000DI=0000DS=13D2ES=13D2SS=13E2CS=13E3IP=0003NVUPEIPLNZNAPONC13E3:00038ED8MOVDS,AX显示单步执行后寄存器和标志状态之后,停在下一条指令开始处。-T↙顺序运行下一条指令5.退出DEBUG-Q↙七、实验存在问题和解决办法存在问题:运行程序时程序能够运行但不能得到预期结果。解决办法:静态查错即检查源程序,并对源程序进行修改,然后再汇编、连接、运行。如果静态检查无法发现错误,则需动态查错。八、实验心得和建议学习了程序设计的基本方法和技能。进一步加深对微机接口芯片原理及工作过程的理解。学习了用汇编语言设计、编写、调试和运行程序的方法。九、教师评语及成绩教师签字:年月日南通大学计算机科学与技术学院微机原理实验报告书班级:智控151学号:1512042022姓名:王建棋南通大学计算机类课程实验报告姓名王建棋学号1512042022学院电气工程学院指导教师胡慧班级智控151实验日期课程名称微机原理实验同组实验者一、实验名称:循环程序设计二、实验目的:1.熟悉汇编语言运行、调试环境及方法。2.掌握循环程序的设计方法。3.掌握DOS功能调用显示输出的使用方法。4.熟悉调试工具DEBUG,并运用DEBUG工具调试程序。三、实验内容及要求(一)、在数据段中有从STRING单元开始存放的100个字节数据,编写程序要求将字符串中的大写字母转换为小写字母,并显示到屏幕上。(二)、用表格形式显示字符:按15行×16列的表格形式显示ASCII码为10H~FFH的所有字符。每16个字符为一行,每行中的相邻两个字符之间用空白符(ASCII码为0)分隔。四、实验环境(包括软、硬件平台)DOS环境,计算机五、实验步骤或程序(注:硬件实验包括电路原理图)一DATASEGMENTSTRDB'ABCDEFGhijkLMNopQRSTUVWxyZ$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,STRA1:MOVAL,[BX]CMPAL,'$'JESHOWCMPAL,'A'JBNEXTCMPAL,'Z'JANEXTADDAL,20HMOV[BX],ALNEXT:INCBXJMPA1SHOW:LEADX,STRMOVAH,9INT21HMOVAX,4C00HINT21HCODEENDSENDSTART二CODESEGMENTASSUMECS:CODESTART:MOVCL,15MOVCH,16MOVBL,10HA1:MOVDL,BLINCBLMOVAH,02HINT21HMOVDL,0MOVAH,02HINT21HDECCHJNZA1MOVDL,0DHMOVAH,02HINT21HMOVDL,0AHMOVAH,02HINT21HMOVCH,16CMPBL,0FFHDECCLJNZA1MOVAH,4CHINT21HCODEENDSENDSTART*(如不够,请另附纸)六、实验结果一二七、实验存在问题和解决办法程序一:检查发现第16行的“ADDAL,20H”将数字0写成了大写字母O,排除错误后可正常运行。字符串后忘了加$,导致转换为小写字母后出现如下乱码:字符串后加结束符$后乱码消除。程序二:分析表明第28行“CMPBL,0FFH”中FFH前要加0八、实验心得和建议编写程序时要养成良好的习惯,如0和O注意区分,注意搞清、搞懂程序的细节如$等的作用,多动手调试、找出错误的原因九、教师评语及成绩教师签字:年月日南通大学计算机科学与技术学院微机原理实验报告书班级:智控151学号:1512042022姓名:王建棋南通大学计算机类课程实验报告姓名王建棋学号1512042022学院电气工程学院指导教师胡慧班级智控151实验日期课程名称微机原理实验同组实验者一、实验名称:分支程序设计二、实验目的:1、掌握分支程序的设计方法。2、掌握键盘输入DOS功能调用的使用方法。3.掌握二进制转换为十进制的方法三、实验内容及要求(一)、通过键盘输入一行字节数据并存入BUFF缓冲区中,编写程序分别统计BUFF中正数和负数的个数,并分别存放到PLUS和MINUS单元中。(二)、程序接收用户键入的一行字符(个数80,字符串以回车结束),按字母、数字及其它字符分类统计,并以十进制数形式显示统计结果。四、实验环境(包括软、硬件平台)DOS环境,计算机五、实验步骤或程序(注:硬件实验包括电路原理图)DATASEGMENTBUFFDB80DB?DB80DUP(?)COUNTEQU$-(BUFF+2)LETTERDB0DIGITDB0OTHERDB0TISHIDB'Pleaseinputstring:$'A1DB'Letter:$'A2DB'Digit:$'A3DB'Other:$'A4DB'Sum:$'DATAENDSCODESEGMENTASSUMEDS:DATA,CS:CODESTART:MOVAX,DATAMOVDS,AXLEADX,TISHIMOVAH,9INT21H;显示提示语句Pleaseinputstring:LEADX,BUFFMOVAH,0AHINT21H;等待输入一串字符LEADI,BUFF+2MOVCL,BUFF+1LEABX,LETTERLOOP1:CMPBYTEPTR[DI],'0';分支程序判断是字符、数字,还是其它。JAENEXT1INCBYTEPTR[BX+2]INCDIDECCXJNZLOOP1JMPSHOWNEXT1:CMPBYTEPTR[DI],'9'JANEXT2INCBYTEPTR[BX+1]INCDIDECCXJNZLOOP1JMPSHOWNEXT2:CMPBYTEPTR[DI],'A'JGENEXT3INCBYTEPTR[BX+2]INCDIDECCXJNZLOOP1JMPSHOWNEXT3:CMPBYTEPTR[DI],'Z'JGNEXT4INCBYTEPTR[BX]INCDIDECCXJNZLOOP1JMPSHOWNEXT4:CMPBYTEPTR[DI],'a'JGENEXT5INCBYTEPTR[BX+2]INCDIDECCXJNZLOOP1JMPSHOWNEXT5:CMPBYTEPTR[DI],'z'JGNEXT6INCBYTEPTR[BX]INCDIDECCXJNZLOOP1JMPSHOWNEXT6:INCBYTEPTR[BX+2]INCDIDECCXJNZLOOP1JMPSHOWSHOW:MOVDL,0AHMOVAH,2INT21HMOVDL,0DHMOVAH,2INT21H;显示换行和回车LEADX,A1MOVAH,9INT21H;显示提示符LetterMOVAL,BYTEPTR[BX]ANDAX,00FFHMOVCL,10DIVCLMOVCH,AHADDAL,30HMOVDL,ALMOVAH,2INT21H;取出Letter的十位,转换为ASCII吗并显示MOVAL,CHADDAL,30HMOVDL,ALMOVAH,2INT21H;取出Letter的个位,转换为ASCII吗并显示MOVDL,0AH;取出Digit的十、个位,转换为ASCII吗并显示,具体同上MOVAH,2INT21HMOVDL,0DHMOVAH,2INT21HLEADX,A2MOVAH,9INT21HMOVAL,BYTEPTR[BX+1]ANDAX,00FFHMOVCL,10DIVCLMOVCH,AHADDAL,30HMOVDL,AL;//MOVAH,2INT21HMOVAL,CHADDA
本文标题:实验报告
链接地址:https://www.777doc.com/doc-6192905 .html