1、微机课程设计 简易计算器微机原理实践课程设计报告题目: 简易计算器 专业: 网络工程 班级: 1001 学号: 1030040158 姓名: 川失意 指导教师: 胡美娇 完成日期:2012年 月 日一、课程设计目的1、 加深对汇编语言理论和基本知识的理解, 掌握DOS和BIOS系统功能调用,掌握运用汇编语言设计具有一定功能的软件的基本方法.2、 通过编写一定规模和难度的程序,进行一次较全面的汇编编程训练,提高分析问题和解决问题的能力3、 提高调试程序的能力二、课程设计内容3、设计一个简易计算器,可以对两个一位数进行加法和减法运算,例如1+2=3,8+9=17,8-5=3,4-9=-5。*Dis
2、play Program*The addition and subtraction operations of two one-digit,Input =,then output the result:如果输入的不是数,提示出错,显示:input error!如果输入e,则退出程序。如果输入c,则清屏。三、课程设计过程1、算法设计(画出算法流程图)2、程序代码清单 DATA SEGMENT BUFF DB 4 DUP(1) JIEGUO DB 2 DUP(1) STR0 DB ,0DH,0AH,$ STR1 DB *Display Program*,0DH,0AH,$ STR2 DB The
3、addition and subtraction operations of two two-digit,0DH,0AH,Input =,then output the result:,0DH,0AH,$ STR3 DB 0DH,0AH,Input error!,0DH,0AH,Please input again!,0DH,0AH,$ TUICHU DB 0DH,0AH,Please press any key to continue!,$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX L
4、EA DX,STR0 MOV AH,9 INT 21H LEA DX,STR1 MOV AH,9 INT 21H LEA DX,STR2 MOV AH,9 INT 21H LEA SI,JIEGUO LEA BX,BUFF START1: MOV AH,1 INT 21H CMP AL,E ;输入为E或e时退出程序 JZ EXIT CMP AL, e JZ EXIT CMP AL,C ;输入为C或c时清屏 JZ QINGPING CMP AL,c JZ QINGPING CMP AL,+ ;输入的字符不为+,-,=,0到9的字符时,则报错,是则存储 JNZ LOOP2 JMP CUNCHU E
5、RROR: LEA DX,STR3 MOV AH,9 INT 21H JMP START1 CUNCHU: ;对输入的字符进行存储 MOV BX,AL INC BX JMP START1 LOOP1: CMP AL,0 JB ERROR CMP AL,9 JA ERROR SUB AL,30H JMP CUNCHU LOOP2: CMP AL,- JNZ LOOP3 JMP CUNCHU LOOP3: CMP AL,= JZ LOOP4 JMP LOOP1 LOOP4: LEA BX,BUFF JMP PANDUAN PANDUAN: ;判断为加法还是减法运算 CMP BX+1, + JZ J
6、IAFA JMP JIANFA JIAFA: LEA BX,BUFF MOV DL,BX ;提取两个加数的数据 MOV AL,BX+2 ADD AL,DL CMP AL,10 JAE JINWEI ADD AL,30H MOV SI+1,AL LEA DX,SI+1 MOV AH,9 INT 21H JMP START JINWEI: SUB AL,10 ADD AL,30H MOV SI,31H MOV SI+1,AL LEA DX,SI MOV AH,9 INT 21H JMP START JIANFA: MOV DL,BX ;提取被减数和减数的数据 MOV AL,BX+2 CMP AL,
7、DL JZ ZERO JA FU JB ZHENG ZHENG: SUB DL,AL ADD DL,30H MOV SI+1,DL LEA DX,SI+1 MOV AH,9 INT 21H JMP START FU: SUB AL,DL MOV SI,- ;结果为负数的输出 (如13-22=-9) ADD AL,30H MOV SI+1,AL LEA DX,SI MOV AH,9 INT 21H JMP START ZERO: MOV DL,30H ;结果为0的输出 MOV AH,2 INT 21H JMP START QINGPING: MOV AL,0 ;实现清屏功能 MOV BH,7 M
8、OV CH,0 MOV CL,0 MOV DH,24H MOV DL, 79H MOV AH,6 INT 10H MOV DX,0 MOV AH,2 INT 10H JMP START EXIT: LEA DX,TUICHU ;退出程序 MOV AH,9 INT 21H MOV AH,4CH INT 21H CODE ENDS END START3、调试过程(包括实验过程中实验步骤,出现的问题,解决的方法,使用的实验数据等)一、对设计的程序进行语法检查,检查程序中存在的语法错误。二、对测试进行综合调试,对下载到芯片的程序进行功能检查,直到完成设计要求的功能。4、系统运行结果截图加减法结果:乘除
9、法结果:其他字符输入结果:按c键清屏结果:5、结果分析加法运算的结果都是正数,但需要考虑进位; 减法运算根据减数和被减数的大小,结果有正有负;输入其他符号,则提示出错,不能进行;按c键可以实现清屏功能;经调试,基本上任务要求设计的所有功能都实现。四、课程设计体会两周的课程设计结束了,给我的总体感觉就是忙碌而充实,而且真正学到了一些东西。另外,这次无论是设计个这程序还是写课程设计报告都让我学到了好多东西,有对课本知识更加深入的了解和掌握,也有对于流程图的设计以及绘制还有word的一些用法和排版等,都让我受益匪浅,不仅让我掌握了更多的知识,还让我领会到要把一件事情做好并真正有所收获还得靠自己独立地去完成并坚持不懈!
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1