微机原理-循环设计实验报告

微机原理-循环设计实验报告

ID:39078918

大小:927.01 KB

页数:7页

时间:2019-06-24

微机原理-循环设计实验报告_第1页
微机原理-循环设计实验报告_第2页
微机原理-循环设计实验报告_第3页
微机原理-循环设计实验报告_第4页
微机原理-循环设计实验报告_第5页
资源描述:

《微机原理-循环设计实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、一、实验目的1、掌握循环程序的设计方法。2、掌握比较指令、转移指令和循环指令的使用方法。3、进一步掌握调试工具的使用方法。二、实验预习要求1、复习比较指令、条件转移指令和循环指令。2、复习循环程序的结构、循环控制方法等知识。3、读懂“实验内容”中给出的将十进制数转换为二进制数以及将二进制数转换为十进制数的程序。4、根据“实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。5、从“实验习题”中任选一道题目,编写源程序,以便上机调试。三、实验内容计算1+2+……n=?,其中n通过键盘输入。要求在屏幕上提供如下信息:Pleaseinputanumber(1~627

2、):;出现此信息后通过键盘输入一个小于628的无符号整数1+2+…..n=sum;其中n为用户输入的数,sum为所求的累加和程序运行情况如下图所示(说明:图中所运行程序允许累加和不大于一个32位二进制数所能表示的范围)。1、编程指导(1)键盘输入的十进制数如368在计算机中是以33H,36H,38H形式存放的,如何将它们转换为一个二进制数101110000B,以便对累加循环的循环次数进行控制是本程序首先要解决的问题。将键盘输入的十进制数转换为二进制数的程序清单如下:DATASEGMENTINF1DB"Pleaseinputanumber(0-65535):$"IBU

3、FDB7,0,6DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETINF1MOVAH,09HINT21HMOVDX,OFFSETIBUF;键入一个十进制数(<65535)MOVAH,0AHINT21HMOVCL,IBUF+1;十进制数的位数送CXMOVCH,0MOVSI,OFFSETIBUF+2;指向输入的第一个字符(最高位)MOVAX,0;开始将十进制数转换为二进制数AGAIN:MOVDX,10;((0´10+a4)´10+…)´10+a0MULDXA

4、NDBYTEPTR[SI],0FHADDAL,[SI]ADCAH,0INCSILOOPAGAINMOVAH,4CHINT21HCODEENDSENDSTART本程序功能:从键盘接收一个无符号十进制整数(小于65535),将其转换为二进制数,转换结果存在AX寄存器中。(1)累加结果为一个16位的二进制数,为了显示结果,必需把它们转换为十进制数。将二进制数转换为十进制数的程序清单如下:DATASEGMENTOBUFDB6DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVBX,

5、OFFSETOBUF+5MOVBYTEPTR[BX],'$'MOVCX,10;做(DX):(AX)/10运算LOOP1:MOVDX,0;被除数高16位清0DIVCXADDDL,30H;将DL中的一位十进制数转换为ASCII码DECBXMOV[BX],DLORAX,AXJNZLOOP1;判断商是否为0,不为0继续MOVDX,BXMOVAH,09HINT21H;显示转换得到的十进制数MOVAH,4CHINT21HCODEENDSENDSTART本程序功能:将存储在AX寄存器中的二进制数转换为十进制数并显示。从键盘输入一个十进制数,并将其转换为二进制数,存放在AX中开始结

6、束素、、(CX)-1=0累加循环次数送CX(MOVCX,AX)AX清0(AX中存放累加和)BX送1(BX存放每次循环累加的数,每循环一次,BX值加1)ADDAX,BXINCBX累加和(在AX中)转换为十进制数并显示YN1、流程图及程序框架(1)流程图(2)程序框架DATASEGMENTINF1DB"Pleaseinputanumber(0-65535):$"IBUFDB7,0,6DUP(?)OBUFDB6DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATA接收从键盘输入的十进制数,并将其转换为二

7、进制数(存AX寄存器)的指令序列MOVDS,AXMOVCX,AXMOVAX,0MOVBX,1LOOP2:ADDAX,BXINCBX将AX中存放的二进制数转换为十进制数并显示的指令序列LOOPLOOP2CODEENDSENDSTART3、完整源程序代码DATASEGMENTINF1DB"Pleaseinputanumber(0-65535):$"IBUFDB7,0,6DUP(?)OBUFDB6DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVDX,OFFSETINF1M

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。