实验八 子程序设计实验报告

时间:2024.4.7

实验八  子程序设计实验报告

通信0704       070900813      韩一帆

一.实验目的

1、掌握程序设计方法,合理划分层次

2、掌握子程序的调用与返回的方法

3、了解子程序的嵌套与递归

二.实验内容与要求

编制一程序,要求键入一个班的学生成绩,并存放于50字的ERADE数组中,然后根据ERADE中的成绩,把学生名次填入50字的RANK数组中,再按学号顺序把名次从终端上显示出来。

程序代码:

DATA SEGMENT

GRADE DW 50 DUP(?)

RANK DW 50 DUP(?)

COUNT DW 0

MESSAGE DB 'TYPE IN THE SCORE$'

FLAG DB -1

RESULT DB 40 DUP(?)

STRING DB 0DH,0AH,'$'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

MAIN:PUSH DS

XOR AX,AX

MOV AX,DATA

MOV DS,AX

CALL INPUT

CALL RK

MOV DX,OFFSET STRING

MOV AH,09H

INT 21H

CALL OUTPUT

MOV AH,01H

INT 21H

INPUT PROC NEAR

MOV DX,OFFSET MESSAGE

MOV AH,09H

INT 21H

LEA SI,GRADE

XOR DX,DX

I:

INC COUNT

MOV AH,01H

INT 21H

SUB AL,30H

MOV DL,64H

MUL DL

MOV BX,AX

MOV AH,01H

INT 21H

SUB AL,30H

MOV DL,0AH

MUL DL

ADD BX,AX

MOV AH,01H

INT 21H

SUB AL,30H

ADD BL,AL

MOV [SI],BX

ADD SI,2

MOV AH,01H

INT 21H

CMP AL,20H

JE I

RET

INPUT ENDP

RK PROC NEAR

MOV CX,COUNT

LEA SI,GRADE

LEA DI,RANK

MOVE:MOV AX,[SI]

MOV [DI],AX

ADD SI,2

ADD DI,2

LOOP MOVE

MOV BX,COUNT

LP1:CMP FLAG,0

JE R

DEC BX

MOV CX,BX

MOV SI,0

MOV FLAG,0

LP2:MOV AX,GRADE[SI]

CMP AX,GRADE[SI+2]

JLE NEXT

XCHG AX,GRADE[SI+2]

MOV GRADE[SI],AX

MOV FLAG,-1

NEXT:ADD SI,2

LOOP LP2

JMP LP1

R:MOV CX,COUNT

LEA DI,RANK

A:MOV BX,COUNT

LEA SI,GRADE

B:MOV AX,[DI]

CMP [SI],AX

JE C

ADD SI,2

DEC BX

JMP B

C:MOV [DI],BX

ADD DI,2

LOOP A

RET

RK ENDP

OUTPUT PROC NEAR

XOR AX,AX

XOR BL,BL

LEA SI,RANK

MOV CX,COUNT

D:

LEA DI,RESULT

MOV AX,[SI]

MOV BL,64H

DIV BL

ADD AL,30H

MOV BYTE PTR[DI],AL

INC DI

XOR AL,AL

XCHG AL,AH

MOV BL,0AH

DIV BL

ADD AL,30H

MOV BYTE PTR[DI],AL

INC DI

ADD AH,30H

MOV BYTE PTR[DI],AH

INC DI

MOV BYTE PTR[DI],','

INC DI

MOV BYTE PTR[DI],'$'

MOV DX,OFFSET RESULT

MOV AH,09H

INT 21H

ADD SI,2

LOOP D

RET

OUTPUT ENDP

CODE ENDS

END MAIN

三.实验心得

通过这次实验让我掌握了程序设计方法,合理划分层次,同时掌握了子程序的调用与返回的方法,并且了解了子程序的嵌套与递归。


第二篇:《经典规范C语言程序设计》实验报告(第八章)


《高级语言程序设计》实验报告

班级:         学号:       姓名:         成绩:    

 实验日期:           月   

                                                       

实验题目:         实验八结构体与链表程序设计

实验目的:

 

实验内容:(包括算法说明:用文字或流程图说明;程序清单;运行结果:原始数据、相应的运行结果和必要的说明。)

 

原始数据、相应的运行结果和必要的说明。

原始数据、相应的运行结果和必要的说明。

 




分析与思考 (调试过程及调试中遇到的问题及解决办法;调试程序的心得与体会)

 

更多相关推荐:
子程序设计实验报告

学号0740303104姓名雷凤子程序设计实验报告一实验目的1训练子程序调用程序以及DOS功能调用程序的编制进一步熟悉和灵活使用系统功能调用培养根据具体情况合理划分程序模块的能力2掌握主子程序之间的调用关系联结...

C++程序设计实验报告

C++程序设计实验报告学号:姓名:班级:指导老师:实验一、字符和格式的输出实验一,实验目的1、重点把握各种内部数据类型、数值和逻辑运算,各种表达式、函数声明、定义和调用。2、掌握过程控制编程方法,正确编制多重循…

子程序设计汇编实验报告_昆明理工大学

昆明理工大学信息工程与自动化学院学生实验报告20xx20xx学年第一学期课程名称汇编与微机接口实验开课实验室信自楼44420xx年11月22日一实验目的1熟悉并且掌握汇编语言的基本指令2熟练地掌握子程序设计过程...

汇编语言子程序结构实验报告

XXXX学院信息学院实验名顺序结构程序设计实验室实验楼403实验日期20xx61912345

实验五汇编实验报告子程序设计

实验五子程序设计1实验目的和要求1学习子程序的编写主子程序的调用2不同模块间程序的调用和调试2实验环境实验的硬件环境是IBMPC机及其兼容机实验的软件环境是操作系统DOS20以上调试程序DEBUGCOM文本编程...

实验五 子程序设计实验报告

汇编语言程序设计实验实验五子程序设计班级姓名学号得分一实验目的掌握子程序设计方法包括A子程序间参数简单传递方法B利用堆栈传递方法C子程序的递归二实验内容十进制到十六进制的转换要求1从键盘取得十进制数然后以十六进...

实验报告 子程序设计实验

实验5子程序实验一实验目的1掌握主程序与子程序之间的调用关系及调用方法2掌握子程序调用过程中近程调用与远程调用的区别3掌握通过堆栈转送参数的方法4掌握多模块程序设计方法二实验内容1将BUF开始的10个单元中的二...

汇编实验报告之子程序设计

山西大学计算机与信息技术学院

实 验 报 告 粒子效果编程

实验报告课程名称实验项目粒子效果编程专业数字媒体技术班级03姓名学号00000000指导教师实验成绩20xx年5月15日实验目的该示例程序在类CDXUTMesh的基础上封装实现了地形类Cterrain在动画网格...

实验5 子程序设计报告

实验5子程序设计实验目的理解堆栈的工作原理熟练掌握子程序的设计方法熟悉子程序相关指令的使用方法实验要求按照要求编写程序调试运行实验内容1上机调试下面的代码单步执行观察ESP寄存器和EIP寄存器内容的变化情况观察...

微机实验报告 子程序结构的设计方法

实验五子程序结构的设计方法专业材料物理姓名曾瑞学号20xx3012300191实验内容编程计算N从键盘上接受10以内的数计算出其阶乘后在屏幕显示结果2实验要求用子程序编写计算N的代码以及结果显示代码3实验目的学...

《高级语言程序设计》实验报告(必看)

高级语言程序设计实验报告

子程序设计实验报告(18篇)