微机原理与接口技术实验指导循环程序设计实验_第1页
微机原理与接口技术实验指导循环程序设计实验_第2页
微机原理与接口技术实验指导循环程序设计实验_第3页
微机原理与接口技术实验指导循环程序设计实验_第4页
微机原理与接口技术实验指导循环程序设计实验_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

3、 a number (0-65535):$"IBUF DB 7,0,6 DUP(?)DATA ENDSCODESEGMENT ASSUME CS: CODE, DS:DATASTART:MOVAX, DATA MOV DS, AXMOV DX, OFFSET INF1MOV AH, 09HINT 21HMOV DX, OFFSET IBUF;键入一个十进制数(<65535)MOV AH, 0AH INT 21HMOV CL, IBUF+1;十进制数的位数送CXMOV CH, 0MOV SI, OFFSET IBUF+2;指向输入的第一个字符(最高位)MOV AX, 0;开始将十

4、进制数转换为二进制数AGAIN: MOVDX, 10; (0´10+a4) ´10+) ´10+a0MUL DX AND BYTE PTR SI, 0FH ADD AL, SI ADC AH, 0 INC SI LOOP AGAINMOV AH,4CH INT 21HCODE ENDS END START 本程序功能:从键盘接收一个无符号十进制整数(小于65535),将其转换为二进制数,转换结果存在AX寄存器中。(2) 累加结果为一个16位的二进制数,为了显示结果,必需把它们转换为十进制数。将二进制数转换为十进制数的程序清单如下:DATASEGMENT OBUFD

5、B 6 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS: CODE, DS: DATASTART:MOVAX, DATA MOV DS, AXMOV BX, OFFSET OBUF+5MOV BYTE PTR BX,'$'MOV CX, 10;做(DX):(AX)/10运算LOOP1:MOVDX, 0;被除数高16位清0 DIV CXADD DL, 30H;将DL中的一位十进制数转换为ASCII码DEC BX MOV BX, DLOR AX, AXJNZ LOOP1;判断商是否为0,不为0继续MOV DX, BXMOV AH, 09H INT 21H

6、;显示转换得到的十进制数MOV AH, 4CH INT 21HCODE ENDS ENDSTART本程序功能:将存储在AX寄存器中的二进制数转换为十进制数并显示。从键盘输入一个十进制数,并将其转换为二进制数,存放在AX中开始结束素、(CX)-1=0累加循环次数送CX(MOV CX,AX)AX清0(AX中存放累加和)BX送1(BX存放每次循环累加的数,每循环一次,BX值加1)ADD AX,BX INC BX累加和(在AX中)转换为十进制数并显示YN2、 流程图及程序框架(1) 流程图(2) 程序框架DATA SEGMENTINF1 DB "Please input a number(0

7、-65535):$"INF2 DB 0AH,0DH,"1+2+.+$"IBUF DB 7,0,6 DUP(?)OBUF DB 6 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV DX,OFFSET INF1 MOV AH,09H INT 21H MOV DX,OFFSET IBUF MOV AH,0AH INT 21H MOV CL,IBUF+1 MOV CH,0 MOV SI,OFFSET IBUF+2 MOV AX,0AGAIN:MOV DX,1

8、0 MUL DX AND BYTE PTRSI,0FH ADD AL,SI ADC AH,0 INC SI LOOP AGAIN MOV CX,AX MOV AX,0 MOV BX,1LOOP1:ADD AX,BX INC BX LOOP LOOP1 MOV BX,OFFSET OBUF+5 MOV BYTE PTR BX,'$' MOV CX,10LOOP2:MOV DX,0 DIV CX ADD DL,30H DEC BX MOV BX,DL OR AX,AX JNZ LOOP2 MOV DX,OFFSET INF2 MOV AH,09H INT 21H MOV SI,OF

9、FSET IBUF+2 MOV CL,IBUF+1 MOV CH,0 ADD SI,CX MOV BYTE PTRSI,'$' MOV SI,OFFSET IBUF+2LOOP3:ADD BYTE PTRSI,30H INC SI LOOP LOOP3 MOV DX,OFFSET IBUF+2 MOV AH,09H INT 21H MOV DL,3DH MOV AH,02H INT 21H MOV DX,BX MOV AH,09H INT 21H MOV AH,4CH INT 21HCODE ENDS END START 实验习题1、 从自然数1开始累加,直到累加和大于6000

10、0为止,显示累加的自然数的个数和累加和。显示格式为:1+2+n=sum其中n为累加个数,sum为累加和。2、 从键盘输入6个加数N1、N2、N3、N4、N5和N6(均为14位的无符号十进制整数),求和并将计算结果在屏幕上显示出来。3、 从键盘输入一个无符号十进制整数(小于65536),将其转换为二进制数,统计该二进制数中包含的1的个数,并将统计结果在屏幕上显示出来。4、 从键盘输入N个无符号十进制整数(小于256),将其转换为二进制数后存放在字节变量BUF存储区中;对这N个数进行由大到小排序,排序后将其仍存储在BUF中;最后将排序后的结果在屏幕上显示出来。 实验报告要求1、 补全“2.4.3

11、实验内容”中源程序框架内未写出的程序代码,并说明你在调试该程序过程中遇到了哪些问题,是如何处理的;请考虑,如果输入的数大于627会出现什么问题?如何解决?2、 从“ 实验习题”中任选一道题目,画出流程图,编写源程序,并说明在调试过程中遇到了哪些问题,是如何处理的。3、 写出实验小结,内容包括实验心得(收获)、不足之处或今后应注意的问题等。选择第一题:从自然数1开始累加,直到累加和大于60000为止,显示累加的自然数的个数和累加和。显示格式为:1+2+n=sum其中n为累加个数,sum为累加和。DATAS SEGMENT n DW ? sum DW ? DATAS ENDS STACK SEGM

12、ENT PARA STACK stack DW 100 DUP(?) STACK ENDS CODES SEGMENT MAIN PROC FAR ASSUME CX:CODES, DS:DATAS, SS:STACK START:PUSH DS MOV AX, 0 PUSH AX MOV AX, DATASMOV DS, AX MOV CX, 0 MOV AX, 0 MOV BX, 0 LOOPT:INC BX ADD AX, BX INC CX CMP AX, 60000 JBE LOOPT MOV n, CX MOV sum, AX RET MAIN ENDP CODES ENDS END START小结:实验过程中,有很多问题使得实验很难进行,最后通过和同学的讨论,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论