十进制加减法Word格式.docx
- 文档编号:13762787
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:22
- 大小:157.50KB
十进制加减法Word格式.docx
《十进制加减法Word格式.docx》由会员分享,可在线阅读,更多相关《十进制加减法Word格式.docx(22页珍藏版)》请在冰豆网上搜索。
完成了《汇编语言程序设计》的4个实验,熟悉了汇编语言程序的设计环境并掌握了汇编语言程序的调试方法.
要求完成的主要任务:
(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
进一步理解和掌握较复杂程序的设计方法,掌握子程序结构的设计和友好用户界面的设计.具体的设计任务及要求:
1)编写程序实现十进制数的加减法;
2)将计算结果在屏幕上显示;
3)程序采用子程序结构,结构清晰;
4)友好清晰的用户界面,能识别输入错误并控制错误的修改.
在完成设计任务后,按要求撰写课程设计说明书;
对课程设计说明书的具体要求请见课程设计指导书.
阅读资料:
1)《IBM—PC汇编语言程序设计实验教程》实验2.4
2)《IBM—PC汇编语言程序设计(第2版)》例6.11
时间安排:
设计安排一周:
周1、周2:
完成系统分析及设计.
周3、周4:
完成程序调试,和验收.
周5:
撰写课程设计报告.
指导教师签名:
年月日
系主任(或责任教师)签名:
年月
十进制加减法计算器
1问题描述
用汇编语言编写一个十进制加减法计算器,此程序要求将结果显示在屏幕上,并且友好清晰的用户界面,能识别输入错误并且控制修改.在此程序中采用子结构程序使结构清晰.
2前期分析
此课题是做一个带显示界面的十进制加减法计算器.首先,程序中多次用到BIOS的10号类型的显示中断功能,所以,在完成此课题之前重点深入学习例行中断程序的理论知识以及用法.其次,识别输入错误的修改功能,这就需要判断错误并及时置光标到合适的位置,以便提示并修改错误.最后,对于采用子程序结构必须清晰了解课题的大体结构,然后分析与设计子程序结构.比如输入十进制数就可以采用子程序结构.
3课题设计
3.1总体设计
概括程序的整体流程,设计有好的用户界面,总体设计流程图如下
输入0
输入1
输入
N
Y
其他键Enter
图1有好用户界面
3.2模块设计
3.2.1求和模块
如右图2,求和模块,将加数与被
加数相加然后扩展为双字,最后通过求
余把每一位数存储在HE存储单元里,
后面把结果按位输出.
图2求和
3.2.2输入十进制数模块
Y
N
图3输入十进制数
上图3,就是输入两个十进制数,对输入的字符判断,如果是0-9之间的数,则转化为十进制数,否则提示重新输入字符.
3.2.3存储单元清零模块
为保证不发生内存访问冲突,每次重新计算的时候都要存储单元清零.如图4
图4存储单元清零
3.2.4减法模块
减法模块主要是比较减数与被减数的大小,如果data1>
data2就直接计算,打印结果.否者将data1压入堆栈,显示’-’,然后data1出栈、计算,打印结果.
减法模块如下图5
Y
图5减法
4.程序源代码
DATASSEGMENT
STR1DB0AH,0DH,'
********************************************'
STR2DB0AH,0DH,'
**'
STR3DB0AH,0DH,'
STR4DB0AH,0DH,'
*1:
Enterrun*'
STR5DB0AH,0DH,'
STR6DB0AH,0DH,'
*otherkeysexit*'
STR7DB0AH,0DH,'
STR8DB0AH,0DH,'
STR9DB0AH,0DH,'
STR10DB0AH,0DH,'
LENGTH1EQU$-STR1;
至str1的字节数
STR11DB'
EnterExit,Otherkeyscontinue!
$'
STR12DB'
Pleaseinputagain!
ERRDB'
Error!
STR13DB'
inputdata1:
'
'
STR14DB'
inputdata2:
STR15DB'
addresult:
STR16DB'
-'
STR17DB'
subresult:
COUNTDW?
VALUEDW?
JIASHUDW?
BEIJIASHUDW?
HEDW?
SHOWMACROM;
定义宏,显示字符串
LEADX,M
MOVAH,9
INT21H
ENDM
GUANGBIAOMACROM1,M2
MOVDH,M1;
行(Y坐标)
MOVDL,M2;
列(X坐标)
MOVBH,0;
显示页码
MOVAH,02
INT10H;
用文本坐标下,设置光标位置
ENDM
QINGPINGMACROM1,M2,M3,M4,M5
MOVAH,6;
向上滚屏
MOVAL,M1;
滚动行数(0-清窗口)
MOVBH,0DH;
空白区域的缺省属性
MOVCH,M2;
窗口的左上角位置,Y坐标
MOVCL,M3;
----------------,X坐标
MOVDH,M4;
窗口的右上角位置,Y坐标
MOVDL,M5;
INT10H
DATASENDS
STACKSSEGMENT
STACKSENDS
CODESSEGMENT
ASSUMECS:
CODES,DS:
DATAS,SS:
STACKS
START:
MOVAX,DATAS
MOVDS,AX
MOVAL,3;
80*2516色文本
MOVAH,0;
设置显示模式为80*25彩色文本模式
MOVBP,SEGSTR1;
取段地址
MOVES,BP
MOVBP,OFFSETSTR1;
取偏移地址
MOVCX,LENGTH1
MOVDX,0
MOVBL,09H;
属性(颜色)
MOVAL,0;
光标位置不变(1改变)属性存在BL中,2和3的属性不在BL中
GUANGBIAO4,15
MOVAH,13H;
在TELETYPE模式下显示字符串
MOVAH,1;
键盘输入并回显
INT21H
CMPAL,31H;
输入1进入加法器,输入2结束
;
JNZNEXT
NEXT:
JMPLOOP8
GUANGBIAO8,20;
确定光标位置(字符串起始位置)
SHOWSTR13
GUANGBIAO9,20
SHOWSTR14
GUANGBIAO10,20
SHOWSTR15
GUANGBIAO11,20
SHOWSTR17
MOVSI,-2
MOVCX,5
LOOP1:
;
存储器清零
ADDSI,2
MOVHE[SI],0
LOOPLOOP1
MOVBX,0
LOOP2:
输入被加数
QINGPING1,8,30,8,50
QINGPING1,9,30,9,50
QINGPING1,10,30,10,50
QINGPING1,11,30,11,50
GUANGBIAO8,30
CALLINPUT
MOVBEIJIASHU,BX
LOOP3:
输入加数
QINGPING1,13,18,13,51
QINGPING1,12,20,12,50
GUANGBIAO9,30
MOVJIASHU,BX
LOOP4:
GUANGBIAO10,30;
相加
MOVAX,BEIJIASHU
ADDAX,JIASHU
CWD
MOVDX,0;
扩展并求结果各位数值
MOVBX,10000
DIVBX
MOV[HE],AX
MOVAX,DX;
余数给AX
MOVBX,1000
MOV[HE+2],AX
MOVAX,DX
CWD
MOVBX,100
MOV[HE+4],AX
MOVBX,10
MOV[HE+6],AX
MOV[HE+8],DX
MOVSI,-2
MOVCX,5
LOOP5:
ADDSI,2;
结果输出
MOVDX,HE[SI]
ADDDX,30H
MOVAH,02
INT21H
LOOPLOOP5;
每位循环输出
LOOP_I:
;
JIANFA
GUANGBIAO11,30
CMPAX,JIASHU
JAEFLAG
XCHGAX,JIASHU
PUSHAX
MOVDX,OFFSETSTR16
MOVAH,09H
POPAX
FLAG:
SUBAX,JIASHU
CALLPRINT
JMPLOOP6
LOOP6:
GUANGBIAO13,19;
退出或继续
SHOWSTR11
MOVAH,01
CMPAL,0DH;
回车退出
JNELOOP7
MOVAH,4CH
LOOP7:
GUANGBIAO12,21
SHOWSTR12
JMPLOOP1
LOOP8:
ERROR:
SHOWERR
INPUTPROCNEAR;
输入子程序
LP1:
CMPAL,0dH;
输入回车输入结束
JEEXIT
CMPAL,31H
JBERROR
CMPAL,39H
JAERROR;
不是0~9之间则显示错误
SUBAL,30H
CBW
X
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 十进制 加减法