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

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1微机原理与接口技术汇编语言及其程序设计报告姓名学院信息与通信工程学院专业班级学号班内序号2目录题目一.......................................................................................................................................3一、实验目的.......................................................................................................................3二、实验任务及内容...........................................................................................................31设计思路....................................................................................................................32流程图........................................................................................................................33源代码........................................................................................................................44子程序清单................................................................................................................4三、实验结果.......................................................................................................................5题目二.......................................................................................................................................6一、实验目的.......................................................................................................................6二、实验任务及内容...........................................................................................................61设计思路....................................................................................................................62流程图........................................................................................................................63源代码........................................................................................................................84子程序清单..............................................................................................................10三、实验结果.....................................................................................................................10题目三.....................................................................................................................................11一、实验目的.....................................................................................................................11二、实验任务及内容.........................................................................................................111设计思路..................................................................................................................112流程图......................................................................................................................123源代码......................................................................................................................134子程序清单..............................................................................................................16三、实验结果.....................................................................................................................163题目一一、实验目的编写一程序,在显示器上显示256个ASCII码,要求显示格式为每行显示16个字符,两个ASCII字符间空一格。二、实验任务及内容1设计思路设DH寄存器初值为0。使用CX寄存器进行256次循环,循环中把DH赋值给DL,利用AH=02H的DOS功能调用INT21H,把DL中的字符和空格输出到屏幕上。进入下一循环前,调用子程序,将DX入栈,判断已输出个数是否为16的倍数,若是,输出回车换行到屏幕上之后,再进行下一循环过程;如果不是16的倍数,DX直接出栈。2流程图图1.1流程图43源代码DATASEGMENTDATAENDSSTACKSEGMENTSTACKDB100HDUP(?);共256个数STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AX;MOVAX,STACK;MOVSS,AXMOVAH,02HMOVDH,0MOVCX,256;循环次数256次NEXT:MOVDL,DHINT21HMOVDL,20H;两数据间加一空格INT21HCALLDISP;调用子程序INCDH;DH加1,对应下一个ASCII码LOOPNEXT;循环至CX为0STOP:MOVAH,4CH;结束INT21HDISPPROC;子程序,判断是否换行PUSHDXANDDH,0FH;是否是16的倍数,若是16的倍数,DH为0FHCMPDH,0FH;与0FH比较JNZRETURN;DH不为0FHMOVDL,13;回车,换行INT21HMOVDL,10INT21HRETURN:POPDX;不是16的倍数RETDISPENDPCODEENDSENDSTART4子程序清单子程序名:DISP5功能:使每行显示16个字符所用寄存器:DX,FR入口参数:DX中的已循环次数出口参数:DX中的已循环次数三、实验结果图1.2编译和连接图1.3运行结果6题目二一、实验目的教材P170第1、2、3题合到一起编一完整的程序。1)编写一程序,把地址偏移量为100H单元开始的256个单元分别写入00H,01H,02H,03H,...,FFH数据;2)统计写入的数据块中0元素、正元素、负元素的个数,并分别把统计结果送入上述数据块之后的三个单元中;3)用DOS功能调用显示第1题中数据块各单元(包括统计结果)内容。二、实验任务及内容1设计思路程序分为三个部分:第一个部分,SI存放数据块的偏移量,CX存入循环次数256次,将AL清零。使内存单元地址每增加一,AL也加一,使得存入的数是递增的;第二个部分,将BX和DH清零,BL存放正元素个数,BH存放负元素个数,DH存放0元素个数。循环256次,且每次循环都对当前内存单元中的数据进行判定,并将其对应的类型个数加一,最后将结果存入数据块第三个部分,CX赋值为259,作为第一个循环,在每次循环中,把内存单元的数据转换成ASCII码并格式化输出,并且若CX不为0,进入第二个循环,否则结束;BH赋值为16,作为第二个循环,使16个数为一行,然后回车换行。2流程图图2.1主程序流程图7图2.2第一部分流程图图2.3第二部分流程图8图2.4第三部分流程图3源代码DATASEGMENTORG100H;数据块在段中的偏移地址BUF1DB259DUP(?);256个单元存放数据,3个单元存放结果COUNTEQU$-BUF1;数据块长度DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSETBUF1MOVCX,COUNT-3;循环总次数256次XORAL,AL;AL清零NEXT1:MOV[SI],ALINCAL;AL从00开始递增INCSILOOPNEXT1;完成第一步,写入00H,01H...FFH数据MOVSI,OFFSETBUF1MOVCX,COUNT-3XORBX,BX;BL存放正元素个数,BH存放负元素个数9XORDH,DH;DH存放0元素个数NEXT2:MOVAL,[SI]CMPAL,0JZZERO;为0,转到zeroJSNEGAT;为负数,转到negatJMPPLUS;不为零不为负,即为整数,转到plusZERO:INCDH;0个数加1JMPNEXT3NEGAT:INCBH;负元素个数加1JMPNEXT3PLUS:INCBL;正元素个数加1NEXT3:INCSILOOPNEXT2;循环直到统计完256个数MOV[SI],DH;存放统计结果INCSIMOV[SI],BX;完成第二步,统计零、正、负元素个数并存放结果MOVSI,OFFSETBUF1MOVCX,COUNTZRBH:MOV

1 / 17
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功