汇编语言课程设计文档格式.docx

上传人:b****2 文档编号:15379623 上传时间:2022-10-29 格式:DOCX 页数:15 大小:143.42KB
下载 相关 举报
汇编语言课程设计文档格式.docx_第1页
第1页 / 共15页
汇编语言课程设计文档格式.docx_第2页
第2页 / 共15页
汇编语言课程设计文档格式.docx_第3页
第3页 / 共15页
汇编语言课程设计文档格式.docx_第4页
第4页 / 共15页
汇编语言课程设计文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

汇编语言课程设计文档格式.docx

《汇编语言课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《汇编语言课程设计文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

汇编语言课程设计文档格式.docx

与其它计算机原理、编译原理、计算机网络、程序设计得专业课程关系十分密切。

本课程设计得目的综合应用学生所学知识,使学生达到熟练掌握微机汇编语言及其程序设计,掌握微机与汇编技术的软硬件设计得基本方法与技巧,培养设计和编制软硬件技术的能力。

1.2课程设计的实验环境

硬件环境:

IBM-PC机,硬盘40G以上,内存256M以上,打印机等。

软件环境:

Windows2000Server或WindowsXPServer操作系统,TC,QE等编辑软件。

MASM汇编软件。

1.3课程设计的预备知识

 微机原理及汇编语言与相关知识。

1.4课程设计要求

(1)从功能上对课设题目进行分析;

(2)通过小组讨论,确定本开发组得题目目标,这是题目开发的全部基础所在;

(3)编写系统(用户)功能设计书,系统功能设计书是题目开发验收得唯一依据;

(4)完成程序结构设计,写出设计报告;

(5)在规定的实践内,完成模块规划,写出模块接口及主要功能说明,完成功能测试计划;

(6)开发并完成系统调试;

(7)提交经过测试的系统以及全部文档;

(8)提交项目总结报告;

第2章课程设计内容

2.1概述

本次课程设计包含两个题目:

1、用子程序编写一个完整的程序

2、统计分数段人数程序

题目一:

用子程序结构编写一个完整的程序:

主程序允许用户在键盘上面输入零件数量和价格;

子程序SUBCONY把ASC||码转换成二进制;

子程序SUBCALC计算出零件的单价;

子程序SUBDISP把二进制表示的单价转换成十进制的数并显示出来。

题目二:

编程序实设有十个学生的成绩分别为88,65,78,95,85,74,99,69,78,100,试编制一个子程序统计60~69分,70~79,80~89,90~99,100分的人数,分别存放到以DAT为首地址的单元中。

两个题目分别涉及数值运算、字符处理、系统功能调用以及子程序设计等的汇编编程方法。

其中子程序设计是两个题目编辑过程的一个重点,大大提高了程序的模块化,而且增加了程序的可读性。

程序结构总体上为顺序结构,在实现一些必要功能的时候有用到分支、循环等程序结构,使得整个程序功能简洁、完整。

2.2总体设计

程序的总体设计分为三个步骤:

总体结构确定、模块关系确定、以及总体结构流程图的确定。

其中程序流程图是整个程序实现的重点。

现将程序流程图绘制如下:

BCD码转换成十进制数并输出在屏幕上

程序流程图:

统计十个学生成绩在各个分数段人数

2.3程序编码设计

程序编码的设计是继题目任务功能、结构分析之后,根据程序流程图对题目任务用汇编语言实现的过程,整个过程包含多次反复的调试、运行以及修改,然后得到功能完整的程序编码。

现在将实现任务的编码部分列出并解释如下:

DATASEGMENT

DAT1DB'

PLEASEINPUTNAMEOFPROCEPT,THEWREPRESPECTOVER$'

;

输入名称的提示语句

DAT2DB'

PLEASEINPUTNUMBEROFPROCEPTTHE0REPRESPECTOVER$'

输入数量的提示语句

DAT3DB'

PLEASEINPUTVALUEOFPROCEPTTHE0REPRESPECTOVER$'

输入总价的提示语句

DAT4DB'

NAME$'

输出名称的提示语句

DAT5DB'

NUMBER$'

输出数量的提示语句

DAT6DB'

UNITPRICE$'

输出单价的提示语句

DATAENDS数据段定义结束

CODESEGMENT代码段

ASSUMECS:

CODE

ASSUMEDS:

DATA

MOVAX,DATA

MOVDS,AX

LEADX,DAT1

MOVAH,9

INT21H显示提示性语句

XORAX,AX

MOVAH,1

INT21H输入名称

CMPAL,57H比较是否为W

JZOVER

MOVBH,AL

MOVAH,2

MOVDL,0DH

INT21H回车

MOVDL,0AH

INT21H换行

LEADX,DAT2

INT21H输入数量

CMPAL,30H比较是否为0

MOVBL,AL

INT21H

LEADX,DAT3输入提示下那个语句

INT21H输入总价

MOVCH,AL

CALLSUBCONY调用SUBCONY

CALLSUBCALC调用SUBCALC

CALLSUBDISP调用SUBDISP

OVER:

MOVAH,4CH

SUBCONY子程序

SUBCONYPROCNEAR

SUBCH,30H将ASC||码转换为二进制

SUBBL,30H

RET

SUBCONYENDP

SUBCALC子程序

SUBCALCPROCNEAR

XORAH,AH

MOVAL,CH求出单价

CBW

DIVBL

SUBCALCENDP

SUBDISP子程序

SUBDISPPROCNEAR

LEADX,DAT4输出提示性语句

INT21H输出名称

MOVDL,BH

LEADX,DAT5

INT21H输出提示性语句

ADDBL,30H将二进制转换为ASC||码

MOVDL,BL

INT21H输出数量

LEADX,DAT6输出提示性语句

ADDCH,30H

MOVDL,CH

INT21H输出单价

SUBDISPENDP

CODEENDS结束

END

DSEGSEGMENT

GRADEDB88,65,78,95,85,74,99,69,78,100;

分数存放在GRADE存储单元

DATDB0,0,0,0,0;

DAT存放各分数段人数

NOTICE1DB'

INPUTANUMBER,1REPRESPECT60-69,,2REPRESPECT70-79,3REPRESPECT80-89,4REPRESPECT90-99,5REPRESPECT100,$'

;

输入提示性语句

NOTICE2DB'

THENUMBERIS$'

输出提示性语句

DSEGENDS

CSEGSEGMENT

DSEG,CS:

CSEG

STA:

MOVAX,DSEG

MOVDI,OFFSETGRADE;

DI指向所取分数单元地址

MOVCX,10;

循环次数

LEASI,DAT;

DI用于存储分数段

AGIN:

MOVAL,[DI]

XORBX,BX

CALLCOMP;

比较放入各分数段中

INCDI

LOOPAGIN;

循环

MOVAH,09H

LEADX,NOTICE1;

INT21H;

换行

MOVAH,1

输入要求的分数段

SUBAL,30H;

ASC||变成二进制数

LEADX,NOTICE2;

MOVAH,02H

MOVDL,[SI+BX-1]

ADDDL,30H

根据输入单元号,显示对应分数段人数

MOVAH,4CH

子程序,用于比较出在哪个分数段。

COMPPROC

CMPAL,69

JAC1

INCBYTEPTR[SI]

JMPEXI

C1:

CMPAL,79

JAC2

INCBYTEPTR[SI+1]

JMPEXI

C2:

CMPAL,89

JAC3

INCBYTEPTR[SI+2]

C3:

CMPAL,99

JAC4

INCBYTEPTR[SI+3]

C4:

INCBYTEPTR[SI+4]

EXI:

RET

COMPENDP

CSEGENDS

ENDSTA

程序结束

2.4题目设计源代码的分析与调试

(1)题目一中要求输入名称,数量和总价,由于是随机输入,因此要判断操作者是否想要结束执行,因此设置了结束条件,由键盘输入的是ASC||码,因此在求出单价前,要将ASC||码转化成二进制数,而后在输出时,再将二进制数转换成ASC||码输出。

(2)题目中最关键也是最困难的一个问题是要将总价存在一个安全的位置,例如,在刚开始时,我将其直接存储在AL中,结果导致输出错误,这是程序运行过程中AL值遭改变造成的,后来将其放在DL中,这个问题就解决了。

另外遇到的一个问题就是排版问题,刚开始时几乎没有什么排版,在孙老师的提示下,我又对程序做了很大的修改,使得程序更加具有可读性,排版也更加美观。

(1)本题要将10个成绩统计各个分数段的人数,10个分数放

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1