汇编语言课程设计带显示界面的加法器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
华北科技学院
课程设计说明书
设计题目: 带显示界面的加法器
课程名称: 汇编语言课程设计班级: 计科B08-2 姓名: 胡玉学号: 200807014218
设计时间: 2010-6-23 至2010-7-2
指导教师: 陈振国
评语:
评阅成绩: 评阅教师:
一、课程设计的性质和目的
性质:《汇编语言》是计算机科学与技术专业及网络工程本科学生必修的专业课程。
目的:进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。
二、课程设计的要求
1、遵循模块化、结构化的程序设计方法。
2、要求程序必须正确。
3、程序简明易懂,多运用输入输出提示,出错信息及必要的注释。
4、要求程序结构合理,语句使用得当。
5、适当追求编程技巧和程序运行效率。
三、主要仪器设备及软件
计算机、MASM汇编软件。
四、课程设计题目
题目:带显示界面的加法器
用汇编语言设计一个加法器,实现加法求和运算。
所有数据在菜单界面上输入,输入结果也在菜单上显示,按回车键则退出加法器菜单并返回DOS系统,否则继续进行加法运算
五、课题分析及设计思路
1、这个题目是做一个带显示界面的加法器,它的主要难度是做一个显示界面;
3、在界面的输出这就用到了BIOS的10号类型的显示中断功能,主要用到了置光标,以及清屏功能;
4、设计加法器的功能就和普通的设计加法一样,只不过要和置光标功能配合将光标置于合适位置;
5、数据储存方式,由于存在位数不定的整数及小数部分,根据其特点,整数部分以有符号二进制形式储存与字单位存储区中;
6、模块的划分,宏定义模块,子程序模块,输入模块,输出模块,整数或者小数判断模块,删除模块,多重循环模块,继续模块,主程序及界面模块。其中每个功能模块都有独立的输入输出接口,有一定独立性;
六、程序主要流程
1、存储单元清零的流程图:
2、求和的流程图:
3、输入数字的流程图:
七、核心代码及分析:
DATAS SEGMENT BUF1 DB 13,10, ' @------------------------------------------@' BUF2 DB 13,10, ' | Hu Yu 200807014218 Welcome To You! |' BUF3 DB 13,10, ' | |' BUF4 DB 13,10, ' | 1:Enter Jia Fa Qi yun xing |' BUF5 DB 13,10, ' | |' BUF6 DB 13,10, ' | 2:Exit yun xing |' BUF7 DB 13,10, ' | |' BUF8 DB 13,10, ' | |' BUF9 DB 13,10, ' | |' BUF10 DB 13,10, ' @------------------------------------------@' LENGTH1 EQU $-BUF1 BUF11 DB 'Enter Exit,Other keys continue!$' BUF12 DB 'Please input again!$' ERR DB 'Error!Please input again!$' BUF13 DB 'BeiJiashu:','$' BUF14 DB 'JiaShu:','$' BUF15 DB 'JieGuo:','$' JIASHU DW ? BEIJIASHU DW ? sum DW ? ;*********************************************************************** SHOW MACRO M LEA DX,M
MOV AH,9 INT 21H ENDM
;*******显示宏定义************* ;********************************************************************
GUANGBIAO MACRO M1,M2 MOV DH,M1 MOV DL,M2 MOV BH,0
MOV AH,02 INT 10H ENDM ;*******************光标宏的定义******************
;******************************************************************** QINGPING MACRO M1,M2,M3,M4,M5 MOV AH,6 MOV AL,M1 MOV BH,0DH MOV CH,M2
MOV CL,M3 MOV DH,M4 MOV DL,M5 INT 10H ENDM ;*******清屏宏定义**************** ;************************************************************************* DATAS ENDS STACKS SEGMENT STACKS ENDS CODES SEGMENT ASSUME
CS:CODES,DS:DATAS,SS:STACKS START:
MOV AX,DATAS
MOV DS,AX
MOV AL,3
MOV AH,0
INT 10H
;***********设置显示模式为80*25彩色文本模式
MOV BP,SEG BUF1;*****回送断基地址MOV ES,BP
MOV BP,OFFSET BUF1;传送偏移地址MOV CX,LENGTH1
MOV DX,0
MOV BL,05H;颜色控制(品红)
MOV AL,0
GUANGBIAO 4,15;调用光标宏
MOV AH,13H
INT 10H
MOV AH,1
INT 21H
CMP AL,31H
JNZ LOOP8
GUANGBIAO 8,20
SHOW BUF13;调用显示宏GUANGBIAO 9,20
SHOW BUF14
GUANGBIAO 10,20
SHOW BUF15
MOV SI,-2
MOV CX,5
;******************************* **************************
;********运用多个循环来实现运算*******************
LOOP1:
ADD SI,2
MOV sum[SI],0
LOOP LOOP1
MOV BX,0
LOOP2:
QINGPING 1,8,30,8,50
QINGPING 1,9,27,9,50
QINGPING 1,10,27,10,50 GUANGBIAO 8,30
CALL INPUT;调用输出子程序MOV BEIJIASHU,BX
LOOP3:
QINGPING 1,13,18,13,51
QINGPING 1,12,20,12,50
MOV BX,0
GUANGBIAO 9,30
MOV BX,0
CALL INPUT
MOV JIASHU,BX
LOOP4:
GUANGBIAO 10,30
MOV AX,BEIJIASHU
ADD AX,JIASHU
CWD;字型转换即字转换为双字MOV DX,0
MOV BX,10000;************由高到低输出位
DIV BX
MOV [sum],AX
MOV AX,DX
CWD
MOV BX,1000
DIV BX
MOV [sum+2],AX
MOV AX,DX
CWD
MOV BX,100
DIV BX
MOV [sum+4],AX
MOV AX,DX
CWD
MOV BX,10
DIV BX
MOV [sum+6],AX
MOV [sum+8],DX
MOV SI,-2
MOV CX,5
;**************** 求和和输出LOOP5:
ADD SI,2
MOV DX,sum[SI]
ADD DX,30H