循环程序设计实验报告

上传人:hs****ma 文档编号:562238021 上传时间:2023-02-13 格式:DOCX 页数:11 大小:56.71KB
返回 下载 相关 举报
循环程序设计实验报告_第1页
第1页 / 共11页
循环程序设计实验报告_第2页
第2页 / 共11页
循环程序设计实验报告_第3页
第3页 / 共11页
循环程序设计实验报告_第4页
第4页 / 共11页
循环程序设计实验报告_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《循环程序设计实验报告》由会员分享,可在线阅读,更多相关《循环程序设计实验报告(11页珍藏版)》请在金锄头文库上搜索。

1、循环程序设计实验报告西安交通大学文少轩一、实验目的1. 掌握循环程序设计方法;2. 掌握数据的统计和排序方法。二、实验设备IBM-PC 微型计算机 一台三、实验要求1. 复习比较指令、循环控制指令的用法;2. 根据流程图和编程提示,预先编写汇编语言程序;3. 有兴趣的同学请编写出实验习题中的程序四、实验内容及数据记录1.在屏幕上显示提示信息“Please input 10 numbers:”,提示用户输入10个数(数的 范围在099之间),然后从键盘上读入这10个数。接着对这10个数从小到大进行排 序,并统计 059、6079、8099 的数各有多少。最后在屏幕上显示排序后的数(每个 数之间用

2、逗号分隔)并显示统计的结果。显示格式如下:Sorted numbers:xx,xx,xx,xx,xx,xx,xx,xx,xx,xx059:xx6079:xx8099:xxKB_BUFDB 3 ACTLENDB ?BUFFER DB 3 DUP(?);数据及统计结果NUMBERS DB 10DUP(?);键入的数据转换成二进制后放在此处LE59 DB 0;059的个数GE60 DB 0;6079的个数GE80 DB 0;8099的个数;显示结果的字符串SORTSTR DB Sorted numbers:SORTNUM DB 10 DUP(20H,20H,),0DH,0AHMESS00 DB 0-

3、59:,30H,30H,0DH,0AHMESS60 DB 60-79:,30H,30H,0DH,0AHMESS80 DB 80-99:,30H,30H,0DH,0AH,$DATA ENDS7CODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AX;显示MESSAGE提示信息LEA DX,MESSAGECALLDOS 9MOV CX,10;共读入10个数据LEA DI,NUMBERS;设置数据保存区指针LI:LEA DX,KB_BUFCALLDOS 10;将ASCII码形式的两位的十进制数转换成二进制数MOV AH,BUFFERM

4、OV AL,BUFFER+1CMP AL,0DHJNZ L2MOV AL,AHMOV AH,0L2:SUB AL,30HSUB AH,30HSHL AH,1MOV BL,AHSHL AH,1SHL AH,1ADD AH,BLADD AL,AHMOV DI,ALINC DICRLFLOOP L1;对NUMBERS中的10个数据进行排序LEA SI,NUMBERSMOV BL,9;设置外循环次数NEXT1: MOV DI,SIMOV CL,BL;设置内循环次数;内循环开始NEXT2: MOV AL,SIINC DICMP AL,DIJB NEXT3MOV DL,DIMOV SI,DLMOV DI,

5、ALNEXT3: LOOP NEXT2;内循环结束INC SIDEC BLJNZ NEXT1;对NUMBERS中的10个数据进行统计LEA SI,NUMBERSMOV CL,10GRADE1:CMP BYTE PTRSI,60JNB GRADE2INC LE59JMP L3GRADE2:CMP BYTE PTRSI,80JNB GRADE3INC GE60JMP L3GRADE3:INC GE80L3:INC SILOOP GRADE1;把10个数据转换成ASCII码LEA SI,NUMBERSLEA DI,SORTNUMMOV CL,1OL4:MOV AL,SIMOV AH,0MOV BL,

6、10DIV BLADD AH,30HADD AL,30HMOV DI,ALINC DIMOV DI,AHADD DI,2INC SILOOP L4;把统计结果转换成ASCII码MOV AL,LE59MOV AH,0MOV BL,10DIV BLADD AH,30HADD AL,30HMOV MESS00+6,ALMOV MESS00+7,AHMOV AL,GE60MOV AH,0MOV BL,10DIV BLADD AH,30HADD AL,30HMOV MESS60+6,ALMOV MESS60+7,AHMOV AL,GE80MOV AH,0MOV BL,10DIV BLADD AH,30H

7、ADD AL,30HMOV MESS80+6,ALMOV MESS80+7,AH;显示排序和统计的结果LEA DX,SORTSTR CALLDOS 9 CALLDOS 4CHCODE ENDSEND START编译、链接结果: C:IIND0ISsysteM32CID. exeE0601.ASMMicrosoft Macro Assembler Heraion 5.10CopyrigflitMicrosoft Corp 1981, 198S. All rigflits reserued.Object fllename E0GO1.OBJ:Source listing NUL.LST:Cross

8、-reference NUL.CRF=49050 + 390256smbo 1 space free0 Marning Errors0 Seuepe Errorsp:MAMLINK E0601.OBJMicrasof七 808& Object Linker Uersion 3.05Copyright (C Microsoft Corp 183, 1984, 1985. A11 rights reserued.Run File E0601.EXE:List File NUL.MAP:Libraries .LIB:Uarninsr: no stack sesrment1c:、C: IKDOSsys

9、t e32CWD. ese|to:MfiSME0601 Please Input 10 nums:ported numbers:00,11,22,33,44,55,66,77, 88,99, 0-59:0660-79:02B0-99:0278的4870Q63584Sorted number-s : 05,26,35,48,63,70, 78,84,99,99,0-59:0460-79:0300-99:03to:MASME0601Please input 10 nums:c斤 C:TINDOTSsysteM32CID_ exe2. 实验习题:从键盘输入任意输入一个字符串,统计其中 AZ 字符出现

10、的次数(不分大 小写,没出现次数就记为 0),并把结果显示在屏幕上。显示格式如下: A:xx B:XXZ:xx程序设计:CALLDOS_MACRO FUNCTIONMOV AH,FUNCTIONINT 21HENDMDATA SEGMENT;提示信息字符串MESSAGE DB Please inp ut a st ring with less t han 50 lett ers:,0DH,0AH,$ OUTMESS DB 0DH,0AH,The result is:,0DH,0AH,$;键盘缓冲区KB_BUF DB 51ACTLEN DB ?BUFFER DB 51 DUP(?);数据及统计结

11、果NUMBERS DB 26 DUP(0);统计的数据结果存放在此处ASCNUMS DB 52 DUP(30H);统计的数据结果转换为ASCII码后存放在此处;显示结果的字符串SORTSTR DB Sorted numbers:,0DH,0AH,$DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START: MOV AX,DATAMOV DS,AX;显示MESSAGE提示信息LEA DX,MESSAGECALLDOS 9LEA DX,KB_BUFCALLDOS 10;把读入的字符全部转换为大写MOV CL,ACTLENLEA SI,BUFFERLI:CM

12、P BYTE PTRSI,aJB L2SUB BYTE PTRSI,a-AL2:INC SILOOP L1;进行统计MOV CL,ACTLENLEA SI,BUFFERL3:LEA DI,NUMBERSMOV AL,SISUB AL,AXOR AH,AHADD DI,AXINC BYTE PTRDIINC SILOOP L3;把统计结果转换成ASCII码并存放LEA SI,NUMBERSLEA DI,ASCNUMSMOV CL,26L4:MOV AL,SIMOV AH,0MOV BL,10DIV BLADD AH,30HADD AL,30HMOV DI,ALINC DIMOV DI,AHINC

13、 DIINC SILOOP L4;输出统计结果LEA DX,OUTMESSCALLDOS 9MOV CL,26MOV BL,0LEA DI,ASCNUMSL5:MOV AL,AADD AL,BLMOV DL,ALCALLDOS 2MOV DL,:CALLDOS 2MOV DL,DICALLDOS 2INC DIMOV DL,DICALLDOS 2INC DIINC BLMOV DL,20HCALLDOS 2LOOP L5CALLDOS 4CHCODE ENDSEND START编译、链接结果:NUL.LST3:执行结果:than:01 H :01 Kthan:01 H :01 Xthan:02 H :09 Kthan:09 H :01 Kstring with lessstring uith lessstring with lessD:Q5 E:01 F:i G 1:00 U:01 U:S1 UD:02 E:02 F:02 G T:0Q U:0Q U:0Q UD:06 E:01 F:00 GT:00 U:01 U:0B UD:B1 E:01 F:01 G T:B1 U:01 U:01 U:01 :0150:0S:01:0Q:0Q:01:01P:01P:0SF:00P:000:01O:SS0:000:01N:01N:0QN:06N:82M:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号