2.4 循环程序设计实验
2.4.1 实验目的
1、掌握循环程序的设计方法。
2、掌握比较指令、转移指令和循环指令的使用方法。
3、进一步掌握调试工具的使用方法。
2.4.2 实验预习要求
1、复习比较指令、条件转移指令和循环指令。
2、复习循环程序的结构、循环控制方法等知识。
3、读懂“2.4.3 实验内容”中给出的将十进制数转换为二进制数以及将二进制数转换为十进制数的程
序。
4、根据“2.4.3 实验内容”中给出的流程图和程序框架编写源程序,以便上机调试。
5、从“2.4.4 实验习题”中任选一道题目,编写源程序,以便上机调试。
2.4.3 实验内容
计算 1+2+……n=?,其中 n 通过键盘输入。要求在屏幕上提供如下信息:
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 a number (0-65535):$"
IBUF DB 7,0,6 DUP(?)
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV DX, OFFSET INF1
MOV AH, 09H
INT 21H
MOV DX, OFFSET IBUF ;键入一个十进制数(<65535)
MOV AH, 0AH
INT 21H
MOV CL, IBUF+1 ;十进制数的位数送 CX