还剩22页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
电子科技大学计算机工程学院标准实验报告(实验)课程名称__________________电子科技大学教务处制表
6.写出源程序清单,并附注释;
7.写出调试过程及运行结果并分析;
8.总结实验中遇到的问题及解决方法;
九、实验数据及结果分析(实验运行结果介绍或者截图,对不同的结果进行分析)程序说明本程序完成求九九乘法表,就相当于C语言中用两个for循环程序清单data SEGMENTa DB1b DBdata ENDScode SEGMENTASSUME CS:code,DS:datamain:MOV AX,data;MOV DS,AX;循环标志loopl:MOV AL,a;MOV CL,AL;MOV b,1;loop_in:MOV AH,2OR b,30h;MOV DL,b INT21h MOV DL,INT21h ORa,30h;MOV DL,a1;a的或运算存放到DL中MOV AH,2INT21h MOV DL,INT21h SUBa,30h;SUB b,30h;MOV AL,a;a*MOV BL,b;b MULBL MOVBL,10;DIV BLMOV BL,AH;MOV AH,2CMP AL,OOh;JE loop2;OR AL,30h;MOV DL,ALINT21H loop2:OR BL,30h;MOV AH,2MOV DL,BL INT21h MOV AH,2MOV DL,INT21hINC bLOOPloop_in MOV AH,2MOVDL,13INT21h MOV AH,2MOVDL,10INT21h INCa CMPa,10JB looplMOV AH,4ch INT21hcode ENDSENDmain程流程图:;a*b赋给BL寄存器;AL/BL%-ah,/-al〈结束);AL的内容与0比较调试说明将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj文件),通过link命令转换为目标程序可执行程序(.exe文件);显示结果为:;跳转到loop_in标志位置c C:\VIVDOVS\systeB32\cad.exe-debug
2.exeC\nasn50link
2.objMicrosoft ROverlay LinkerUersion
3.60Copyright CMicrosoft Corp1983-
1987.All rightsreserved.Run File[
2.EXE]List File[NUL.MAP:Libraries[•LIB]LINKwarning L4021no stucksegmnt-g J*1-11*2-22-2-41*3-32*3-63*3-91*4=42*4=83M«124+1=161*5-52*5N103*5-154*5-205*5-25l«6-62*6-123«6-184-6-245«6-306«6-3662-7-143«7-2134t7-285«7-35・7・427*7-491*8-82*8-16闻・244»8-325*8-40»487*8-568*8-647*9=631*9=92*9=183*9=274*9=365*9=456*9=548*9=729*9=811C\nasn50debug
2.exeProgran terminatednormally-2
十、实验结论(联系理论知识进行说明)通过本次实验,掌握了分支程序的结构特点,学习了分支程序的设计和调试方法,掌握了循环程序的结构特点并学习了循环程序的设计和调试方法,运用了循环程序设计的思想,本实验的原理框图较为复杂,但是框图给出了明确的思路和解题方向,是很好的学习方法本次程序设计实验运用了数个跳转指令,JL,JLE,跳转指令在循环程序设计过程中具有很重要的特点报告评分指导教师签字:电孑科技大学实验报告实验三指导教师实验地点主楼A2-412实验时间19:00-
一、实验室名称
二、实验项目名称数制、码制和子程序的编程与调试
三、实验学时
四、实验原理(包括知识点,电路图,流程图)数制、码制和子程序设计基本规范与调试方法;MASM宏汇编开发环境使用方法;循环程序设计与调试方法;分配与使用寄存器的相关方法
五、实验目的:
1.熟练掌握编写汇编语言原程序的基本方法和基本框架
2.熟练使用DEBUG调试程序
3.掌握十六进制数与ASCII码之间,ASCII码与BCD码之间的转换
4.掌握用DOS功能调用,实现字符的输入和显示
5.掌握子程序的编程与调试方法
六、实验内容(介绍自己所选的实验内容)
1、从键盘输入两个2位十进制正数,相加,结果以十六进制数形式显示在屏幕上(要求结果显示完整的算式)
2、从键盘输入两个2位十进制正数转换成组合BCD码后,相加,结果以十进制形式显示在屏幕上(要求结果显示完整的算式)
3、从键盘输入两个2位十六进制数,相加,结果以十进制形式显示在屏幕上(要求结果显示完整的算式)
七、实验器材(设备、元器件)WinXP PC机,MASM,50,VisulASM软件平台
八、实验步骤(编辑调试的过程)
1、程序说明说明程序的功能、结构
2、调试说明包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析
3、写出源程序清单(含注解)和执行结果(截图)
4、画出对应的流程图
九、实验数据及结果分析(实验运行结果介绍或者截图,对不同的结果进行分析)程序说明本实验输入两个子程序,一个是将十六进制数转换成二进制数的子程序,还有就是讲二进制数转换为十进制数的在程序运行的时候我们首先输入两个十六进制数,然后分别转换为二进制数(利用子程序)之后加法计算出二进制结果然后我们再利用子程序B转出十进制最终结果程序清单:DATA SEGMENTMSG1DB13,10,Please input hex number_1:$;输入提示字符串MSG2DB13,10,,Please inputhex number_2:$;输入提示字符串CRLF DB13,10,NN DB9*,MM DB9*DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA DX,MSG1MOV AH,9INT21HCALL IN_CHAR;调用IN_CIIARMOV MM,ALLEA DX,MSG2MOV AH,9INT21H;返回DOSCALL IN_CHARMOV NN,ALLEA DX,CRLFMOV AH,9INT21HMOV AL,MMCALL OUT_NUMMOV DL,MOV AH,2INT21HMOV AL,NNCALL OUT_NUMMOV DL,=MOV AH,2INT21HMOV AL,NNADD AL,MM;MN与NN相加MOV AH,0ADC AH,0;带进位的相加CALL OUT_1EXIT:MOV AH,4CHINT21H;返回DOSIN_CHAR:LEA BX,NNMOV CX,2IN_1:MOV AH,1;调用1号功能,键盘输入数据INT21HCMP AL,O;判断位变量转移JB IN_1CMP AL,FJA IN_1CMPAL,9JBE LNUMCMPAL,JB IN_1SUB AL,7LNUM:SUB AL,30HMOV[BX],ALINC BXLOOPIN」XCHG AL,NNMOV BL,16MUL BLADD AL,NN RETOUT_NUM:MOV;存放计算结果OUT1:MOV DX,0程序框图调试说明将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj文件),通过link命令转换为目标程序可执行程序(.exe文件);显示结果为:c C:\VIVDOVS\systeB32\cBd.exe-debug aul.exe Eross-reference™YNULCRF^50882♦450318Bytes symbolspace free0Warning Errors0Severe ErrorsC:\masn501ink nul.objMicrosoft ROverlay LinkerUersion
3.60Copyright CMicrosoft Corp1983-
1987.All rightsreserved-Run FileNU
1.EXE]•List File[NUL.MAP1Libraries.LIBI:LINK:warning L4021:no stacksegnentC\masn50debug nul.exe pleaseinputhex nunberj.16Please inputhexnunber_218H22,024,046Progran terninated normally
十、实验结论(联系理论知识进行说明)本实验完成了数制,码制子程序调试设计及其应用程序的设计与调试运行实验,学习了汇编语言程序设计过程中的数据输入方法和字符串存储特点,以及利用码制转换将两个十六进制数相加并以十进制形式输出报告评分指导教师签字:电孑科就.大学实验报告实验一学生姓名穆萨・指导教师实验地点主楼A2-412实验时间19:00〜
一、实验室名称
二、实验项目名称汇编源程序的上机调试操作基础训练
三、实验学时
四、实验原理(包括知识点,电路图,流程图)DEBUG的基本调试命令;汇编数据传送和算术运算指令MASM宏汇编开发环境使用调试方法
五、实验目的
1.掌握DEBUG的基本命令及其功能
2.学习数据传送和算术运算指令的用法
3.熟悉在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程也孑科技大学实验报告实验四指导教师实验地点主楼A2-412实验时间19:00-
一、实验室名称串操作指令及其应用程序的设计与调试运行
二、实验项目名称
三、实验学时
四、实验原理(包括知识点,电路图,流程图)串操作程序设计基本规范与调试方法;MASM宏汇编开发环境使用方法循环程序设计与调试方法;分配与使用寄存器的相关方法
五、实验目的:
1.熟悉串操作指令的基本格式和使用方法
2.掌握常用的串操作程序的设计方法
3.熟悉串操作程序的调试运行过程
六、实验内容(介绍自己所选的实验内容)
1.从键盘输入两个长度不同的字符串,设字符串长度小于25个字符要求在屏幕上以右边对齐的形式显示出来
2.数据块移动将一个连续存储单元的数据移动到另一个连续的存储单元,并找出其中零的个数并显示出来(注意在编程的时候要确保数据块位置的不确定性)
3.从键盘输入两个相同长度的字符串,分别放到数据段和附加段,利用串比较指令比较数据段和附加段中两个字符串,如果两串一样,输出Y,否则输出不同的字符
七、实验器材(设备、元器件)WinXP PC机,MASM,50,VisulASM软件平台
八、实验步骤(编辑调试的过程)实验前要做好充分准备,包括汇编程序清单、调试步骤、调试方法,以及对程序结果的分析等
1.程序说明说明程序的功能、结构
2.调试说明包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析
3.画出流程图
4.写出源程序清单(含注解)和执行结果(截图)
九、实验数据及结果分析(实验运行结果介绍或者截图,对不同的结果进行分析)程序说明本程序完成两个字符串的键盘输入并且右对齐输出字符串结构
1、在数据段中设置两个存放显示信息的字符串,一个是提示用户输入,另一个是提示显示信息位置
2、在数据段中设置两个存放输入字符串的缓冲区
3、输入字符串曹勇OAH号DOS功能调用,字符串存入缓冲区时,第二个字节为实际输入字符串的长度,从第三个字节开始为字符串的ASCII码
4、为了显示右对齐,由于两个字符串缓冲区的长度相同,只需要将两个字符串向缓冲区后面靠齐,再调用09H号DOS功能调用即可达到显示的右对齐程序清单DATA SEGMENTNUMEQU25PROMPT1DB OAH,ODH,fstring:\f$;输入提示PR0MPT2DB OAH,ODII,after adjusting:,OAH,ODH,f$fSTR ING1DB NUM,0,NUM DUP(),OAH,ODH,STRING2DB NUM,0,NUM DUP’9,0AH,ODH,f$fDATA ENDSSTACK1SEGMENT PARASTACKDW20H DUPOSTACK1ENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACK1BEGIN:MOV AX,DATAMOV DS,AXMOV ES,AXMOV CX,2;CX初始化为2LEA BX,STRING1L00P1:LEA DX,PROMPT1MOV AH,09HINT21HMOV DX,BXMOV AH,OAHINT21HLEA BX,STRING2LOOP L00P1LEA BX,STRING1+2CALL MOVELEABX,STRING2+2CALL MOVELEA DX,PR0MPT2MOVAH,09HINT21HLEA DX,STRING1+2MOVAH,09HINT21HLEA DX,STRING2+2MOVAH,09HINT21HMOV AH,4CHINT21HMOVE PROCXOR CH,CH;XORCH,CH结果为0相当于,清零MOV CL,MOV SI,CXADD SI,BXDEC SIMOVDI,BXADD DI,NUM-1STDREP MOVSBMOVCX,NUMSUB CL,-1[BX]MOV AL,REPSTOSB RETMOVE ENDPCODEENDSEND BEGIN程序流程图:REP MOVSB进行字符串传送调试说明将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj文件),通过link命令转换为目标程序可执行程序(.exe文件);显示结果为50502♦415674Bytes symbolspace free0Warn ingErrors BSevere ErrorsC\masn50link nu
4.objMicrosoft ROverlay LinkerUersion
3.60Copyright CMicrosoft Corp1983-
1987.All rightsreserved.Run File【HU
4.EXEJList File[NUL.MAP]:Libraries[.LIB]C:\masn50debug nu
4.exe-g stringhell^RUSH sti*ing howare youafter adjustinghell,nusa howarc youProgranterninatednormally
十、实验结论(联系理论知识进行说明)本实验完成了串操作指令及其应用程序的设计与调试运行实验,学习了汇编语言程序设计过程中的数据输入方法和字符串存储特点,以及利用串操作命令来将缓冲区大小一致的两个字符串右对齐输出本次实验很有难度,提升了我们设计复杂汇编程序的能力报告评分指导教师签字:
六、实验内容(介绍自己所选的实验内容)
1.DEBUG命令的使用
2.程序的调试与运行
3.编写程序计算以下表达式:Z=(5X+2Y-7)/2设X、丫的值放在字变量VARX、VARY中,结果存放在字节单元VARZ中
七、实验器材(设备、元器件)WinXP PC机,MASM,50,VisulASM软件平台
八、实验步骤(编辑调试的过程)
1.编辑源程序,建立一个以后缀为.ASM的文件.
2.汇编源程序,检查程序有否错误,有错时回到编辑状态,修改程序中错误行无错时继续第3步
3.连接目标程序,产生可执行程序
4.用DEBUG程序调试可执行程序,记录数据段的内容
九、实验数据及结果分析(实验运行结果介绍或者截图,对不同的结果进行分析)程序说明功能本程序完成Z=(5X+2Y-7)/2这个等式的计算结果求取其中X与Y是已知量,Z是待求量结构首先定义数据段,两个DB变量VARX与VARY(已经初始化),以及结果存放在VARZ,初始化为?然后定义堆栈段,然后书写代码段,代码段使用顺序程序设计本程序,重点使用MOV和IMUL以及XOR,IDIV完成程序设计详细内容见程序注释程序清单:DATA SEGMENTVARXDB10VARY DB10VARZ DBDATA ENDSSTACKSEGMENT PARASTACKSTACK ENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACK MAIN:MOV AX,DATAMOV DS,AXMOV AL,VARXMOV AH,VARYSAL AL,1SAL AL,1ADD AL,VARXSAL AH,1ADDAL,AHSUB AL,7SAR AL,1MOV VARZ,ALMOV AH,4CHINT21HCODE ENDSENDMAIN程序框图:开始与进行异或(置零)AX AX与进行异或(置零)CX CXVARX—AL5f CLAX与AX进行异或(置零)VARY-AL2-CLAL=AL*CLAL+DL-ALAL-7—AL2-CLCL/2=CL AL-VARZ结束调试说明:将汇编语言(.asm文件)通过masm命令转换为目标程序(.obj文件),通过link命令转换为目标程序可执行程序(.exe文件);这次试验还要用-P参数以及d参数显示结果为C:\¥INDO¥S\syste32\cd.exe-debug
1.exeX=141F BX=0000CX=0033DX=0000SP=0000BP=0000SI=0000DI=0000li S=13F2ES=13E2SS=13F3CS=13F3IP=001C NU UP EI PL NZ NA PO CY13F3001C A20200pP MOU[0002LAL DS=0002=00X=141F BX=0000CX=0033DX=0000SP=0000BP=0000SI=0000克■图拉克li S=13F2ES=13E2SS=13F3CS=13F3IP=001F NUUP EIPL NZNAtt.3F3001F B44C MOUAH,4c581546右健弹pP出窗口X=4C1F BX=0000CX=0033DX=0000SP=0000BP=0000SI=0000DI=0000S=13F2ES=13E2SS=13F3CS=13F3IP=0021NUUPEIPLNZNAPOCY13F30021CD21I NT21一D3F3F200-8AD
00000.3F306C4-2C00001013F3C21-8B46002013F3D80-7F8A•U.「・•・•.t_一.*0030;3F35658-
2...F....u..u....13F300090
十、实验结论(联系理论知识进行说明)通过本次实验,我们学习了解掌握了DEBUG的基本命令及其功能,学习了数据传送和算术运算指令的用法,熟悉了在PC机上编辑、汇编、连接、调试和运行汇编语言程序的过程完成了Z=(5*X+2*Y-7)/2算术式的编程计算,使用到了以上学习到的知识,并且利用了顺序程序设计的思想通过本次实验,大大提升了对汇编程序设计这门课实践意义的理解,提高了编程能力和设计水平报告评分指导教师签字:B048014082C9E866102301E0C41B4680CCD80480BEDD8589E0BA00008291000206F6102000D88F670E19B810B00F578FF70804BEE6DA03388F022A6B96E082944B02966668EBFS82E004AFBBB5电孑科就.大学实验报告实验二学生姓名穆萨・指导教师实验地点主楼A2-412实验时间19:00-
一、实验室名称
二、实验项目名称分支程序与循环程序设计
三、实验学时
四、实验原理(包括知识点,电路图,流程图)分支程序设计基本规范与调试方法,循环程序设计与调试方法;分配与使用寄存器的相关方法
五、实验目的
1.掌握分支程序的结构
2.掌握分支程序的设计与调试方法
3.掌握循环程序设计与调试方法
4.掌握正确分配与使用寄存器
六、实验内容(介绍自己所选的实验内容)
1.根据输入的字母进行大小写转换(若是输入小写字母则转换成为大写字母,反之),若输入的不是字母则提示出错并重新输入
2.从键盘上输入三个一位十进制数,将其中大于均值的数显示出来显示九九表(任意形式均可)
3.
4.键盘输入1-7,对应输出Monday-Sundayo
七、实验器材(设备、元器件)WinXP PC机,MASM,50,VisulASM软件平台
八、实验步骤(编辑调试的过程)
1.编写源程序文件;
2.汇编,若发现语法错误或者格式错误则修改;
3.链接,形成可执行文件;
4.运行程序,得到正确结果;
5.撰写实验报告1)实验目的;2)实验要求;3)实验步骤;4)实验中涉及知识介绍;5)画出流程图;。
个人认证
优秀文档
获得点赞 0