2013微机实验报告汇总(武汉大学物理学院) .docVIP

  • 7
  • 0
  • 约2.1万字
  • 约 39页
  • 2016-11-01 发布于贵州
  • 举报

2013微机实验报告汇总(武汉大学物理学院) .doc

2013微机实验报告汇总(武汉大学物理学院)

2013微机实验报告汇总(武汉大学物理学院) ok3w_ads(“s004”); ok3w_ads(“s005”); 实验报告一(循环程序的设计) 专业:材料物理; 姓名:曾瑞; 学号:2011301230019 1, 实验内容 编程计算:S=1+2+3+6…+Nlt;=100的最大项数N以及对应的和S。 2, 实验要求 将最大项数与和数分别存入N和SUM单元,用TD调试,运行程序并检查结果; 将结果在屏幕上以16进制数显示。显示格式:MAX N=xxH SUM =xxH。 3,实验目的 学习并掌握循环程序的设计方法。 4,源程序 ;FILENAME:ZENGRUI.ASM DATA SEGMENT N DB? ;开辟一个字节单元 MESG1 DBMAX N=’,30H,30H,’H’,’$’ SUM DB? MESG2 DB‘SUM =’,30H,30H,’H’,’$’ DATA ENDS CODE SEGMENT ASUME CS:CODE,DS:DATA ;段分配 BEGIN: MOV AX,DATA ;段基址→DS MOV DS,AX MOV BL,0 ;给BL和AL赋初始值0 MOV AL,0 COUNT: INCBL ADD AL,BL CMP AL,100 JBECOUNT ;无符号数lt;=跳转 SUBAL,BL ;所得AL大于100,故要减去BL DECBL ;BL的前一位才是最大项 MOV [N],BL ;最大项数→N单元 MOV [SUM],AL ;和数→SUM单元 MOV BX,OFFSET N CALL N2_16 ;调用过程N2_16 MOV BX,OFFSET SUM CALL N2_16 MOV AH,9 ;9号功能调用,输出字符串MOV DX,OFFSET MESG1INT 21H MOV AH,02H;2号功能调用,输出两个空格MOV DL,00HINT 21HMOV AH,02HMOV DL,00HINT 21H MOV AH,9 ;9号功能调用,输出字符串 MOV DX,OFFSET MESG2 INT21H MOV AH,4CH;返回DOS操作系统INT21H N2_16 PROC NEXTI: CMP BYTE PTR [BX],16;存储单元与16比较 JC NEXT2 ;小于16转 SUB BYTE PTR [BX],16;否则,减去16 INC BYTE PTR [BX+7] ;高位加一 JMP NEXT1 NEXT2: MOV AH,BYTE PTR [BX] CMP AH,10 ;与10比较 JC NEXT3 ;小于10转 MOV CH,7 ;否则,加7 ADD AH,CH NEXT3: ADD BYTE PTR [BX+8],AH ;生成低位数 RET ENDP CODE ENDS END BEGIN 5,实验结果及分析 实验结果显示为:MAX N=0DH SUM =5BH。经过验证,其结果是正确的。 需要说明的有以下几点: 本程序还可以进一步简化。比如,对于空格的输出,在本程序中两次调用了2号功能,当然,也可以直接在输出字符串时中直接输出。例如,直接在DATA SEGMENT 中MESG1 DBMAX N=’,30H,30H,’H’,’$’修改为MESG1 DBMAX N=’,30H,30H,’H’,’00H’,’00H’,$,就可以做到这点; 在设计源程序时,本人对结果输出稍微改变了一下。实验要求是MAX N=xxH SUM =xxH,最终结果显示为:MAX N=0DH SUM =5BH。可以看出,字符串SUM后面多了一个空格。之所以这样做,是因为这样方便调用过程N2_16,其好处是 简化了程序; 由于实验要求SUMlt;=100,因而在输出显示16进制

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档