实验4循环设计.docxVIP

  • 5
  • 0
  • 约2.23千字
  • 约 4页
  • 2020-11-23 发布于河北
  • 举报
汇编语言程序设计实验 四 1. 循环程序设计实验 1.1. 目的 1)掌握循 程序的 方法。 2)掌握比 指令、 移指令和循 指令的使用方法。 3) 一步掌握 工具的使用方法。 1.2. 要求( 前完成) 1)复 比 指令、条件 移指令和循 指令。 2)复 循 程序的 构、循 控制方法等知 。 3) 懂“ 内容”中 出的源程序,并完成程序,以便上机 。 4)任 一道“ ” 写源程序,以便在 行 。 1.3. 内容 算 1+ 2+?+ n=?,其中 n 通 入,累加和小于 216。要求在屏幕上提供如下信息: Please input a number(1~627): 1+2+ ?+n= sum 其中, n 累加个数, sum 累加和。 ( 1) 程指 ① 入的十 制数,如 368 在 算机中是以 33H, 36H, 38H 形式存放的,如何 将它 一个二 制数 101110000B ,以便 累加循 的循 次数 行控制,是本程序首先要解决的 。将 入的十 制数 二 制数的程序如下。 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:DA TA START: 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 MOV AH, 4CH INT 21H CODE ENDS END START 本程序功能:从键盘接收一个无符号十进制整数(小于制数,转换结果存放在 AX 寄存器中。  65535),将其转换为二进 ② 累加结果为一个 16 位的二进制数,为了显示结果,必须把它们转换为十进制数。 将二进制数转换为十进制数的程序如下。 DA TA SEGMENT OBUF DB 6 DUP(?) DA TA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DA TA START: MOV AX, DATA MOV DS, AX MOV BX, OFFSET OBUF+5 MOV BYTE PTR [BX], ‘ $’ MOV CX, 10 LOOP1: MOV DX, 0 DIV CX ADD DL, 30H DEC BX MOV [BX], DL OR AX, AX JNZ LOOP1 MOV DX, BX MOV AH, 09H INT 21H MOV AH, 4CH INT 21H CODE ENDS END START 本程序功能:将存放在 AX 寄存器中的二 制数 十 制数并 示。 ( 2)源程序框架 DATA SEGMENT INF1 DB “Please input a number(0-65535): $” IBUF DB 7, 0, 6 DUP(?) OBUP DB 6 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS: DATA START: MOV AX, DATA MOV DS, AX 接收从 入的十 制数, 并将其 二 制数 (存 AX 寄存器) 的指令序列 MOV CX, AX MOV AX, 0 MOV BX, 1 LOOP2: ADD AX, BX INC BX LOOP LOOP2 将 AX 中存放的二 制数 十 制数并 示的指令序列 CODE ENDS END START 1.4. 实验习题 ① 从自然数 1 开始累加,直到累加和大于 加和。 示格式如下:  60000 止, 示累加的自然数的个数和累 1+2+ ? +n= sum 其中, n 累加个数, sum 累加和。 ② 从 入一个无符号十 制数(小于 65535),将其 二 制数, 二 制数中包含的 1 的个数,并将 果在屏幕上 示出来。 ③ 从 入 N 个无符号十 制整数 (小于 256),将其 二 制数后存放在字 量 BUF 存 区中, N 个数 行由大到小排序,排序后将其仍存 在 BU

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档