欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    微机原理与汇编语言程序设计报告.docx

    • 资源ID:11011943       资源大小:434.85KB        全文页数:26页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微机原理与汇编语言程序设计报告.docx

    1、微机原理与汇编语言程序设计报告微机原理与汇编语言程序设计报告 所在学院: 计算机工程学院 专 业: 计算机科学与技术(网络工程) 班 级: 11计3Z 姓 名: 黄申祥 学 号: 11141313 2013年6月1日1、程序功能:1从键盘输入N个带符号数(N值也从键盘输入,N=65535),带符号数为16位二进制数范围;2找出这N个数中的最大值和最小值,并且显示出来;3计算这N个数的平均值,并且显示出来。2、程序设计总体思路程序按功能所属主要分为7个模块,7个模块分别为一个主程序;SHOW欢迎子程序;NUM取数据个数子程序;READ数据输入子程序;WRITE数据显示子程序;MAXMIN求数据最

    2、大最小值子程序;MEAN求数据平均值子程序。另外,为了更好地输入输出显示,还设计了DPCRLF光标回车换行子程序、NDPCRLF多个空格输出显示子程序。整个程序通过主程序中相关指令调用各个子程序,实现各个功能,这种模块化的设计方法不仅简化了主程序,还可以重复利用已有子程序,提高编程效率。3、程序分析程序运行之初,首先展现在屏幕上的是程序欢迎界面。主程序通过调用SHOW欢迎子程序以实现此功能。欢迎界面之后,程序提示输入数据个数N,通过调用NUM取数据个数子程序由此得到执行READ数据输入子程序的次数,通过多重循环执行此子程序以取得N个数据。当数据输入完成、顺利保存后,通过调用BIOS功能实现对屏

    3、幕原有字句进行清除,调用WRITE数据显示子程序将用户之前输入的数据显示在屏幕上,数据的输入显示格式通过调用NDPCRLF多个空格输出显示子程序实现。进行最大最小值判断,通过调用MAXMIN求数据最大最小值子程序,利用循环取得各个数据与假设的最大最小值进行比较,满足一定条件后将其替换。计算平均值,通过调用MEAN求数据平均值子程序,利用循环累加各个数据并除以N,求得最终结果。4、程序流程图1主程序流程图2SHOW欢迎子程序流程图3NUM取数据个数子程序流程图4READ数据输入子程序流程图5WRITE数据显示子程序流程图6MAXMIN求数据最大最小值子程序流程图7MEAN求数据平均值子程序流程图

    4、5、源程序列表文件内容Microsoft (R) Macro Assembler Version 6.11 06/02/13 01:24:33tempfile.asm Page 1 - 1 0000 DSEG SEGMENT ;数据段 0000 77 65 6C 63 6F 6D MESS0 DB welcome to this program! -HUANG SHENXIANG 65 20 74 6F 20 74 68 69 73 20 70 72 6F 67 72 61 6D 21 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

    5、20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

    6、20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2D 2D 2D 2D 48 55 41 4E 47 20 53 48 45 4E 58 49 41 4E 47 00C8 3D 3D 3D 3D 3D 3D MESS1 DB =Welcome to this program!=,$ 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 57 65 6C 63 6F 6D 65 20 74 6F 20 74

    7、 68 69 73 20 70 72 6F 67 72 61 6D 21 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 24 0101 50 6C 65 61 73 65 MESS2 DB Please input N(N=65535):,$ 20 69 6E 70 75 74 20 4E 28 4E 3C 3D 36 35 35 33 35 29 3A 24 011B 50 6C 65 61 73 65 MESS3 DB Please input numbers:,$ 20 69 6E 70 75 74 20 6E 75 6D 62 65 7

    8、2 73 3A 24 0131 0A 0D 0A 0D 59 6F MESS4 DB 0AH,0DH,0AH,0DH,Your input are:,$ 75 72 20 69 6E 70 75 74 20 61 72 65 3A 24 0145 0A 0D 54 68 65 20 MESS5 DB 0AH,0DH,The MAX is:,$ 4D 41 58 20 69 73 3A 24 0153 0A 0D 54 68 65 20 MESS6 DB 0AH,0DH,The MIN is:,$ 4D 49 4E 20 69 73 3A 24 0161 0A 0D 54 68 65 20 ME

    9、SS7 DB 0AH,0DH,The AVERAGE is:,$ 41 56 45 52 41 47 45 20 69 73 3A 24 0173 00 DISPMOD DB ? 0174 0000 COUNT DW ? 0176 03E8 ARRAY DW 1000 DUP(0) 0000 0946 0000 WTEMP DW ? 0948 0000 MAXAY DW ? 094A 0000 MINAY DW ? 094C DSEG ENDS 0000 SSEG SEGMENT STACK ;堆栈段 0000 0080 DB 80H DUP(0) 00 0080 SSEG ENDS 0000

    10、 CSEG SEGMENT ;代码段 ASSUME DS:DSEG,SS:SSEG,CS:CSEG 0000 B8 - R START: MOV AX,DSEG 0003 8E D8 MOV DS,AX 0005 FC CLD ;CLD使DF复位,即DF=0,STD使DF置位,即DF=1 0006 E8 01B2 CALL SHOW ;调用显示欢迎界面 0009 BA 00C8 R MOV DX,OFFSET MESS1 ;显示欢迎横幅于第二页 000C B4 09 MOV AH,09H 000E CD 21 INT 21H 0010 E8 018C CALL DPCRLF 0013 E8 0

    11、189 CALL DPCRLF 0016 BA 0101 R MOV DX,OFFSET MESS2 ;输入元素个数 0019 B4 09 MOV AH,09H 001B CD 21 INT 21H 001D E8 009C CALL NUM ;调用INPUT子程序 0020 8B 0E 0174 R MOV CX,COUNT ;将输入的元素个数值N传递给CX计数寄存器 0024 BB 0176 R MOV BX,OFFSET ARRAY 0027 BA 011B R MOV DX,OFFSET MESS3 ;输入N个元素 002A B4 09 MOV AH,9H 002C CD 21 INT

    12、 21H 002E E8 016E CALL DPCRLF 0031 E8 0094 AGAIN1: CALL READ ;调用READ子程序,输入元素 0034 89 07 MOV BX,AX ;将出口参数存放到数据缓冲区 0036 43 INC BX 0037 43 INC BX 0038 E8 0164 CALL DPCRLF ;调用DPCRLF子程序,光标回车换行以便输入下一元素 003B E2 F4 LOOP AGAIN1 003D B0 03 MOV AL,3H 003F CD 10 INT 10H 0041 8B 0E 0174 R MOV CX,COUNT 0045 BB 01

    13、76 R MOV BX,OFFSET ARRAY 0048 BA 00C8 R MOV DX,OFFSET MESS1 ;显示欢迎横幅于第二页 004B B4 09 MOV AH,09H 004D CD 21 INT 21H 004F BA 0131 R MOV DX,OFFSET MESS4 0052 B4 09 MOV AH,09H 0054 CD 21 INT 21H 0056 E8 0146 CALL DPCRLF 0059 8B 07 AGAIN2: MOV AX,BX 005B A3 0946 R MOV WTEMP,AX ;将入口参数存放到共享变量 005E E8 00A8 CA

    14、LL WRITE ;调用WRITE子程序,显示一个元素 0061 83 C3 02 ADD BX,2 0064 E8 0149 CALL NDPCRLF ;调用NDPCRLE子程序,光标回车换行以便显示下一个数据 0067 E2 F0 LOOP AGAIN2 ;执行COUNT次循环 0069 B4 02 MOV AH,2 006B B2 0D MOV DL,0DH 006D CD 21 INT 21H 006F B2 0A MOV DL,0AH 0071 CD 21 INT 21H 0073 8B 0E 0174 R MOV CX,COUNT 0077 B8 0176 R MOV AX,OFF

    15、SET ARRAY 007A E8 00CF CALL MAXMIN ;调用MAXMIN子程序 007D BA 0145 R MOV DX,OFFSET MESS5 0080 B4 09 MOV AH,09H 0082 CD 21 INT 21H 0084 A1 0948 R MOV AX,MAXAY 0087 A3 0946 R MOV WTEMP,AX 008A E8 007C CALL WRITE ;调用WRITE子程序输出MAXAY 008D BA 0153 R MOV DX,OFFSET MESS6 0090 B4 09 MOV AH,09H 0092 CD 21 INT 21H 0

    16、094 A1 094A R MOV AX,MINAY 0097 A3 0946 R MOV WTEMP,AX 009A E8 006C CALL WRITE ;调用WRITE子程序输出MINAY 009D BA 0161 R MOV DX,OFFSET MESS7 00A0 B4 09 MOV AH,09H 00A2 CD 21 INT 21H 00A4 A1 0174 R MOV AX,COUNT 00A7 50 PUSH AX 00A8 B8 0176 R MOV AX,OFFSET ARRAY 00AB 50 PUSH AX 00AC E8 00C3 CALL MEAN 00AF 83

    17、C4 04 ADD SP,4 00B2 A3 0946 R MOV WTEMP,AX 00B5 E8 0051 CALL WRITE ;调用WRITE子程序输出平均值 00B8 B4 4C MOV AH,4CH 00BA CD 21 INT 21H 00BC NUM PROC 00BC 50 PUSH AX 00BD E8 0008 CALL READ 00C0 A3 0174 R MOV COUNT,AX 00C3 E8 00D9 CALL DPCRLF 00C6 58 POP AX 00C7 C3 RET 00C8 NUM ENDP 00C8 READ PROC ;输入有符号十进制数的通用

    18、子程序:READ 00C8 53 PUSH BX ;出口参数:AX=补码表示的二进制数值 00C9 51 PUSH CX ;负数用“-”引导,数据范围是+32767-32768 00CA 52 PUSH DX 00CB 33 DB XOR BX,BX ;BX保存结果 00CD 33 C9 XOR CX,CX ;CX为正负标志,0为正,-1为负 00CF B4 01 MOV AH,1 ;输入一个字符 00D1 CD 21 INT 21H 00D3 3C 2B CMP AL,+ ;是“+”,继续输入字符 00D5 74 07 JZ READ1 00D7 3C 2D CMP AL,- ;是“-”,设

    19、置-1标志 00D9 75 07 JNZ READ2 00DB B9 FFFF MOV CX,-1 00DE B4 01 READ1: MOV AH,1 ;继续输入字符 00E0 CD 21 INT 21H 00E2 3C 30 READ2: CMP AL,0 ;不是09之间的字符,则输入数据结束 00E4 72 16 JB READ3 00E6 3C 39 CMP AL,9 00E8 77 12 JA READ3 00EA 2C 30 SUB AL,30H ;是09之间的字符,则转换为二进制数 ;利用移位指令,实现数值乘10:BXBX 017D 8B 4E 06 MOV CX,BP+6 ;从堆栈中取得数据个数-CX 0180 33 F6 XOR SI,SI ;SI保存求和的低16位值 0182 8B FE MOV DI,SI ;DI保存求和的高16位值 0184 8B 07 MEAN1: MOV AX,BX ;取出一个数据-AX 0186 99 CWD ;符号扩展-DX 0187 03 F0 ADD SI,AX ;求和低16位 0189 13 FA ADC DI,DX ;求和高16位 018B 43


    注意事项

    本文(微机原理与汇编语言程序设计报告.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开