北邮 微机原理 第一次软件实验报告.docxVIP

北邮 微机原理 第一次软件实验报告.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微机原理与接口技术汇编语言及其程序设计报告姓 名 学 院 信息与通信工程学院 专 业 班 级 学 号 班内序号 目录题目一3一、实验目的3二、实验任务及内容31设计思路32流程图33源代码44子程序清单4三、实验结果5题目二6一、实验目的6二、实验任务及内容61设计思路62流程图63源代码84子程序清单10三、实验结果10题目三11一、实验目的11二、实验任务及内容111设计思路112流程图123源代码134子程序清单16三、实验结果16题目一实验目的编写一程序,在显示器上显示256个ASCII码,要求显示格式为每行显示16个字符,两个ASCII字符间空一格。实验任务及内容设计思路设DH寄存器初值为0。使用CX寄存器进行256次循环,循环中把 DH赋值给DL,利用AH=02H的DOS功能调用INT 21H,把DL中的字符和空格输出到屏幕上。进入下一循环前,调用子程序,将DX入栈,判断已输出个数是否为16的倍数,若是,输出回车换行到屏幕上之后,再进行下一循环过程;如果不是16的倍数,DX直接出栈。流程图图1.1 流程图源代码DATA SEGMENTDATA ENDSSTACK SEGMENT STACK DB 100H DUP(?);共256个数STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX ;MOV AX,STACK ;MOV SS,AX MOV AH,02H MOV DH,0 MOV CX,256 ;循环次数256次NEXT: MOV DL,DH INT 21H MOV DL,20H ;两数据间加一空格 INT 21H CALL DISP ;调用子程序 INC DH ;DH加1,对应下一个ASCII码 LOOP NEXT ;循环至CX为0STOP: MOV AH,4CH ;结束 INT 21HDISP PROC ;子程序,判断是否换行 PUSH DX AND DH,0FH ;是否是16的倍数,若是16的倍数,DH为0FH CMP DH,0FH ;与0FH比较 JNZ RETURN ;DH不为0FH MOV DL,13 ;回车,换行 INT 21H MOV DL,10 INT 21HRETURN: POP DX ;不是16的倍数 RETDISP ENDPCODE ENDS END START子程序清单子程序名:DISP功能:使每行显示16个字符所用寄存器:DX, FR入口参数:DX中的已循环次数出口参数:DX中的已循环次数实验结果图1.2 编译和连接图1.3 运行结果题目二实验目的教材P170第1、2、3题合到一起编一完整的程序。编写一程序,把地址偏移量为100H单元开始的256个单元分别写入00H,01H,02H,03H,...,FFH数据;统计写入的数据块中0元素、正元素、负元素的个数,并分别把统计结果送入上述数据块之后的三个单元中;用DOS功能调用显示第1题中数据块各单元(包括统计结果)内容。实验任务及内容设计思路程序分为三个部分:第一个部分, SI存放数据块的偏移量,CX存入循环次数256次,将AL清零。使内存单元地址每增加一,AL也加一,使得存入的数是递增的;第二个部分,将BX和DH清零,BL存放正元素个数,BH存放负元素个数,DH存放0元素个数。循环256次,且每次循环都对当前内存单元中的数据进行判定,并将其对应的类型个数加一,最后将结果存入数据块第三个部分,CX赋值为259,作为第一个循环,在每次循环中,把内存单元的数据转换成ASCII码并格式化输出,并且若CX不为0,进入第二个循环,否则结束;BH赋值为16,作为第二个循环,使16个数为一行,然后回车换行。流程图图2.1 主程序流程图图2.2 第一部分流程图 图2.3 第二部分流程图图2.4 第三部分流程图源代码DATA SEGMENT ORG 100H ;数据块在段中的偏移地址BUF1 DB 259 DUP(?) ;256个单元存放数据,3个单元存放结果COUNT EQU $-BUF1 ;数据块长度DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX MOV SI,OFFSET BUF1 MOV CX,COUNT-3 ;循环总次数256次 XOR AL,AL ;AL清零NEXT1: MOV [SI],AL INC AL ;AL从00开始递增 INC SI LOOP NEX

文档评论(0)

整理王 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档