资源描述:
《课内实验报告微机原理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、西安邮电大学Gt算机学院)课内实豔报告实验名称:循环程序设计实验专业名称:软件班级:软件学生姓名:学号(8位)指导教师:实验日期:2015年11月9日一.实验目的及实验环境1、掌握循环程序的设计方法。2、掌握比较指令、转移指令和循环指令的使用方法。3、进一步掌握调试工具的使用方法。二.实验内容计算1+2+……n=?,其中n通过键盘输入。要求在屏幕上提供如下信息:Pleaseinputanumber(1-627):;出现此信息后通过键盘输入一个小于628的无符号整数1+2+.....n=sum;其中n为用八输入的数,sum为所求的累加和程序运行情况如下图所示(说明:图中所运行程序允许累加
2、和不大于一个32位二进制数所能表示的范围)。1、编程指导(1)键盘输入的十进制数如368在计算机中是以33H,36H,38H形式存放的,如何将它们转换为一个二进制数MS-DOS方式-nllxl8x12^J□淹
3、鱼
4、田
5、創面Aj阪D:exbook>ex24*n5值廖盪烈明.计算:结果在屏幕上显示.按怪童磋继续执行程库诸输入n值(最大的一个数■减范由为0001-4000^:30001+2+3+晋3000的和为二4501500D:exbook>I011I0000B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题。将键盘输入的十进制数转换为二进制数的程序清单如下:DATASEGM
6、ENTMOVMOVCH,0SI,OFFSETINFIDB"Pleaseinputanumber(0-65535):$°IBUF+2IBUFDB7,0,6DUP(?)MOVAX,0DATAENDSAGAIN:MOVDX,10CODESEGMENTMULDXASSUMECS:CODE,DS:DATAANDBYTEPTR[SI],START:MOVAX,DATAOFHMOVDS,AXADDAL,[SI]MOVDX,OFFSETINFIADCAH,0MOVAH,09HINCSIINT21HLOOPAGAINMOVDX,OFFSETMOVAH,4CHIBUFINT21HMOVAH,OAHCODE
7、ENDSINT21HENDSTARTMOVCL,IBUF+1本程序功能:从键盘接收一个无符号十进制整数(小于65535),将其转换为二进制数,转换结果存在AX寄存器小。(2)累加结杲为一个16位的二进制数,为了显示结果,必需把它们转换为十进制数。将二进制数转换为I•进制数的程序清单如下:DATASEGMENTDATAENDSOBUFDB6DUP(?)CODESEGMENTSTART:MOVAX,DATAMOVDS,AXMOVBX,OFFSETOBUF+5MOVBYTEPTR[BX],$MOVCX,10;做(DX):(AX)/10运算LOOP1:MOVDX,0;被除数高16位清0DIVe
8、xADDDL,30H;将DL中的一位十进制数转换为ASCII码MOV[BX],DLORAX,AXJNZLOOP1;判断商是否为(),不为()继续MOVDX,BXMOVAH,09HINT21H;显示转换得到的十进制数MOVAH,4CHINT21HCODEENDSENDSTART本程序功能:将存储在AX寄存器中的二进制数转换为十进制数并显示。2、流程图及程序框架(I)流程图(2)程序框架DATASEGMENTINFIDB"Pleaseinputanumber(0-65535):$“IBUFDB7,0,6DUP(?)OBUFDB6DUP(?)DATAENDS接收从键盘输入的十进制数,并将Jt
9、转换为二进制数(存AX寄存器)的指令序列CODESEGMENTSTART:MOVAX,DATAMOVDS,AXMOVCX,AXMOVAX,0MOVBX,1LOOP2:ADDAX,BXINCBXLOOPLOOP2ASSUMECS:CODE,DS:DATA将AX中存放的二进制数转换为十进制数并显示的指令序列CODEENDSENDSTART1、问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接收从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。由于数字0〜9的ASCII码值与其代表的数值Z间相差30H,因此将其减去30H即可得到
10、以非压缩型BCD数形式表示的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用汁压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个*压缩型BCD数01H和04H,将它们分别加上30H后变为其对应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示岀来。综上所述,需要考虑以下问题。(1)从键盘输入一