循环程序设计实验样本

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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(1 627): ;浮现此信息后通过键盘输入一种不大于628无符号整数

1+2+…..n=sum;其中n为顾客输入数,sum为所求累加和

程序运营状况如

下图所示(阐明:图中

所运营程序容许累加

和不不不大于一种32

位二进制数所能表达

范畴)。

1、编程指引

(1)键盘输入十进制数如368在计算机中是以33H,36H,38H形式存储,如何将它们转换为一种二进制数B,以便对累加循环循环次数进行控制是本程序一方面要解决问题。将键盘输入十进制数转换为二进制数程序清单如下:

DA TA SEGMENT

INF1 DB "Please input a number (0-65535):$"

IBUF DB 7,0,6 DUP(?)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DA TA

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

MOV CH,0

MOV SI,OFFSET IBUF+2 ;指向输入第一种字符(最高位)

MOV AX,0 ;开始将十进制数转换为二进制数AGAIN:MOV DX,10 ;((0⨯10+a4) ⨯10+…) ⨯10+a0 MUL DX

AND BYTE PTR [SI],0FH

ADD AL,[SI]

A DC AH,0

I NC SI

LOOP AGAIN

MOV AH, 4CH

INT 21H

CODE ENDS

END START

本程序功能:从键盘接受一种无符号十进制整数(不大于65535),将其转换为二进制数,转换成果存在AX寄存器中。

(2)累加成果为一种16位二进制数,为了显示成果,必须把它们转换为十进制数。将二进制数转换为十进制数程序清单如下:

DA TA SEGMENT

OBUF DB 6 DUP(?)

DA TA ENDS

C ODE SEGMENT

ASSUME CS:CODE,DS:DATA

S TART: MOV AX,DA TA

MOV DS,AX

MOV BX,OFFSET OBUF+5

MOV BYTE PTR [BX],'$'

MOV CX,10 ;做(DX):(AX)/10运算

L OOP1: MOV DX,0 ;被除数高16位清0

DIV CX

ADD DL,30H ;将DL中一位十进制数转换为ASCII码

DEC BX

MOV [BX],DL

OR AX,AX

JNZ LOOP1

;判断商与否为0,不为0继续

MOV DX,BX

MOV AH,09H

INT 21H

;显示转换得到十进制数

MOV AH,4CH

INT 21H

C ODE ENDS

END START

本程序功能:将存储在AX寄存器中二进制数转换为十进制数并显示。

2、流程图及程序

(1)流程图

(2)实验代码:

DA TA SEGMENT

INF1 DB "Please input a number (0-65535):$"

IBUF DB 7,0,6 DUP(?)

OBUF DB 6 DUP (?)

DA TA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

S TART: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,0

AGAIN:MOV DX,10

MUL DX

AND BYTE PTR[SI],0FH

ADD AL,[SI]

ADC AH,0

INC SI

LOOP AGAIN

相关文档
最新文档