微机原理与接口技术实验报告材料.doc
微机原理与接口技术实验报告实验名称实验一分支程序设计实验时间2014.11.14 第11周实验成绩实验目的1熟悉实验环境2掌握汇编语言程序开发过程3掌握分支程序设计实验原理汇编语言程序上机调试过程如下列图:编辑文本编辑器,如 EDIT源程序:文件名.asm汇编汇编程序,如 目标模块:文件名.obj连接连接程序,如 可执行文件:文件名.exe调试调试程序,如 应用程序错误错误错误错误实验内容1熟悉实验环境,掌握汇编语言程序开发过程2掌握汇编程序的调试方法3调试exp1_01.asm,分析数据段的存储格式4运行exp1_01.exe,分析存放器的变化情况5在首地址为ARRAY为首地址的内存区域里,存放了一组带符号的数据,是编写程序分别统计零、正数和负数的个数,统计结果分别存放在ZZ、XX、YY中。源程序和实验结果(1)exp1_01DSEG SEGMENT ;数据段开始 BVAR DB 1,-2,'AB',3 DUP('a'),? ;字节变量, 8项 WVAR DW 1,-2,'AB',3 DUP('a'),? ;字变量,7项 DVAR DD 1,-2,'AB',3 DUP('a'),? ;双字变量,7项 VAR1 DW WVAR, DVAR, DVAR-WVAR, VAR1-DVAR ;字变量,4项 VAR2 DD WVAR, DVAR, DVAR-WVAR, VAR1-DVAR ;双字变量,4项 VAR3 DB DVAR-WVAR, VAR1-DVAR ;字节变量,2项DSEG ENDS ;数据段完毕CSEG SEGMENT ;代码段开始 ASSUME CS:CSEG,DS:DSEG ;设定段存放器与逻辑段的关系START: MOV AX,DSEG MOV DS,AX ;设置数据段段地址MOV AX, 1234HMOV BX, 5678HAND AX, 8001H ;将AX中的最高位和最低位保存,其余位清零OR BX, 000FH ;将BX中的低4 位置位, 其余位不变 MOV AX,4C00H ;为DOS功能调用设置功能号和入口参数INT 21H ;DOS功能调用,返回DOS 操作系统CSEG ENDS ;代码段完毕 END START ;汇编完毕2exp1_2DSEG SEGMENT ARRAY DB 56,-42,66,87,8,88,-68,0,-67,58,97,-66,86,77 COUNT EQU $-ARRAY XX DB 0 ; YY DB 0 ; ZZ DB 0 ;DSEG ENDSCODE SEGMENT ASSUME CS : CODE,DS:DSEGSTART: MOV AX, DSEG MOV DS, AX LEA SI, ARRAY MOV CX, COUNT AGAIN: MOV AL, SI CMP AL, 0 JGE L1 LD: INC ZZ JMP NEXT L1: JG L2 INC YY JMP NEXT L2: INC XX NEXT: ADD SI,1 LOOP AGAIN EXIT: MOV AX,4C00H INT 21HCODE ENDSEND START小结和心得 实验完毕了,学到了很多,对分支程序设计的结构,分支程序的设计,调试方法都有了充分的认识。这次实验我们采用转移表法多分支程序设计,转移表法又称分支表方法,转移表方法实现多分支的设计思路如下:把转移各分支程序段的转移指令依次存放在一X表中,这X表称为转移表。各分支转移指令在表中的位置,即离表首地址的位移量作为条件。当进展多分支条件判断时,把当前条件的偏移量加上表首地址作为转移地址,转移到表的相应位置,继续执行无条件转移指令,达到多分支目的。同时我也掌握汇编程序的编译、连接、调试方法。这次的实验相对较简单,没有犯多少错误就完成了实验,但是这并意味着不用动脑筋。在读程序的时候还是花了我不少的时间,由于对课本知识的不了解和对实践的缺乏使得我对程序不是很了解,在教师和同学的帮助下,我终于顺利的完成了实验。做完实验,感慨很多,首先是看到了自己的不足,我意识到光有理论知识是远远不够的,还必须把它运用到实际生活中,而且理论是离不开实践的,在以后的学习生活中,我会加强自己的实践能力,同时要加强和他人的合作,很多复杂的问题大家一起思考就变得简单多了。另一方面,我也明白了只有自己亲自实践,自己独立思考,才会有自己独到的见解。我会努力处理好独立学习和与他人合作,争取在以后的学习生活中做得更好!