辽宁工程技术大学上机实验报告课程名称计算机硬件基础实验题目综合程序设计(一)院系软件学院专业嵌入式班级09-1姓名王楠学号0920010118实验日期2011.10.17实验目的1.熟练掌握宏汇编程序设计的思想。2.掌握顺序程序设计的思想及方法。3.熟练掌握分支程序的结构。4.掌握分支程序设计的思想、方法及上机调试过程。实验准备1.8086/8088汇编语言指令及伪指令的用法2.子程序设计的思想和方法过程名PROC[NEAR|FAR]……;过程体过程名ENDP其中:可选的参数指定过程的调用属性。没有指定过程属性,则采用默认属性NEAR。NEAR属性:段内近调用,子程序只能被相同代码段的其他程序调用FAR属性:段间远调用,子程序可以被相同或不同代码段的程序调用3.DOS和BIOS中断调用是机器及操作系统提供的中断调用功能4.系统功能调用的步骤5.DOS利用21H号中断提供给用户近百个系统功能,主要包括设备管理、目录管理和文件管理三个方面的功能6.BIOS也以中断服务程序的形式,向程序员提供系统的基本输入输出程序课程实验基本教学文件规范:实验报告模板实验进度本次共有2个练习,完成2个。实验内容【实验一】【实验要求】编写主程序调用一个过程,实现将两个非压缩BCD码转换为一个压缩BCD码,并用字符显示功能和字符串显示功能完成在屏幕上显示一个字符串“HelloWorld!”的功能。【实现代码】DATESEGMENTD1DW01D2DW08BUFDW?DATEENDSCODESEGMENTASSUMECS:CODE,DS:DATESTART:MOVAX,DATEMOVDS,AXMOVAXDLMOVBX,D2MOVCL,4SHLAX,CLADDAX,BXMOVBUF,AXSTRINGDB'HelloWorld!','$'MOVAX,SEGSTRINGMOVDS,AXMOVDX,OFFSETSTRINGMOVAH,09HINT21HCODEENDSENDSTART【实验二】【实验要求】在内存建立一个表TABLE,其中存放20个字节型无符号数,从键盘输入一个数X(一位数),查找该数X在TABLE中是否存在,若存在,则在RESULT单元存入1,否则存入-1。【代码实现】DSEGSEGMENTTABLEDB01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20RESULTDB?STRINGDB‘FIND’,’$’DSEGENDSCSEGSEGMENTASSUMECS:CSEGDS:DSEGSTART:MOVAX,DSEGMOVDS,AXCALLAAAAMOVSI,OFFSETTABLEMOVCX,20BBBB:CMPAL,[SI]JZRESU课程实验基本教学文件规范:实验报告模板INCSILOOPBBBBMOVRESULT,-1JMPCCCCAAAAPROCMOVAH,01HINT21HRESU:MOVRESULT,1MOVAX,SEGSTRINGMOVDS,AXMOVDX,OFFSETSTRINGMOVAH,09HINT21HRETAAAAENDPCCCC:MOVAH,4CHINT21HCSEGENDSENDSTART实验分析日【实验1】(1)该源程序取名11.ASM,通过汇编、连接后生成可执行文件11.EXE。(2)调试方法和运行结果利用U命令进行反汇编,观察内容如上,表明DS=0B8AH;课程实验基本教学文件规范:实验报告模板【实验2】(1)该源程序取名44.ASM,通过汇编、连接后生成可执行文件44.EXE。(2)调试方法和运行结利用U命令观察内容如上,表明DS=13FCH;利用-T命令从起始地址开始依次执行指令;课程实验基本教学文件规范:实验报告模板实验总结1.【实验问题】没有注意存入的字符型数据以ASCⅡ码的形式存在,实验出错后,经过查阅书籍,加以改正。第一个试验在编译器使用上存在问题,在寻址上也是有些生疏,连接器连接路径不正确,导致编译无法继续进行;当运行到INT21H时,会出现无法继续执行的情况。2.【实验结论】通过对数据段的数据定义,利用DOS系统功能调用方法实现了压缩与非压缩BCD码的转换,并实现字符串的显示。3.【收获体会】通过程序更加明晰DOC系统的操作:(1)输入一个字符,01H号功能调用(2)输出一个字符,02H号功能调用(3)输入一个字符串,0AH号功能调用(4)输出一个字符串,09H号功能调用与此同时,在本次试验中更加熟练的掌握地址与个段之间的对应关系,能更准确的找到所需要的数据信息,同时把平常用的指令语句又温习了一遍,需要加强的就是编程时候的语句规范性。课程实验基本教学文件规范:实验报告模板教师评语