微机课程设计lirujun.docx
《微机课程设计lirujun.docx》由会员分享,可在线阅读,更多相关《微机课程设计lirujun.docx(8页珍藏版)》请在冰豆网上搜索。
微机课程设计lirujun
《微型计算机原理以及应用》课程设计
代码转换程序设计
姓名
陈桐湘
院系
信息学院自动化系
班级
自动1091
学号
200911632121
指导教师
张瑛
时间
2011年12月30日
目录
1总体方案论证1
2流程图的设计以及说明1
2.1流程图1
3设计步骤2
3程序的设计2
3.1程序中的关键技术2
3.2总程序及注释2
4程序调试,仿真6
4.1十进制向二进制装换6
4.2小写字母向大写字母转换6
5总结6
信息学院自动化系
自动化1091,200911632121,慕建波
指导老师:
张瑛
1总体方案论证
本课程设计的任务是做代码转换程序设计,可以在emu8086软件的界面提示输入所选功能,完成实现小写字母向大写字母的转换,或实现十进制数向二进制数的转换。
即可以进行所需的转换。
设计要求自己通过调用中断输入在屏幕上输入数据并保存起来,还要判断是如何实现继续做下一步运算题的问题也要解决。
2流程图的设计以及说明
2.1流程图
经研究分析,本程序设计思路如下所示:
程序设计思路
流程图如下:
3设计步骤
3程序的设计
3.1程序中的关键技术
INT21H指令
01H号功能:
等待从标准设备输入一个字符,将该字符的ASCII码送给AL,并在标准输出设备上显示该字符。
入口参数:
无。
出口参数:
AL的内容为输入字符的ASCII码。
09H号功能:
在标准输出设备上显示某个字符串。
入口参数:
DX的内容为要显示的字符串的首地址。
出口参数:
无
3.2总程序及注释
;multi-segmentexecutablefiletemplate.
datasegment
A0DB0DH,0AH,"Pleaseselectthefunction:
1、Changetheletter$"
A1DB0DH,0AH,"2、Changethenumble$"
A2DB0DH,0AH,"Yourselectionis:
$"
B0DB0DH,0AH,'pleaseinputannumber:
$'
B1DB10
B2DB0DH,0AH,"Theresultis:
$"
D0DB0DH,0AH,"Pleaseentersmallletter:
$";addyourdatahere!
D2DB0DH,0AH,"Theresultis:
$"
D1DB25
DB10
DB26DUP(10)
pkeydb"$"
ends
stacksegment
dw128dup(0)
ends
codesegment
start:
;setsegmentregisters:
movax,data
movds,ax
moves,ax
ff:
LEADX,A0
MOVAH,9
INT21h
LEADX,A1
MOVAH,9
INT21h
LEADX,A2
MOVAH,9
INT21h
MOVAH,1
INT21H
CMPAL,"1"
JZFUNCTION1
CMPAL,"2"
JZFUNCTION2
FUNCTION2:
LEADX,B0
MOVAH,9
INT21h
MOVBX,0
MOVAX,0
INPUT:
MOVAH,1
INT21h
CMPAL,0DH;比较空格
JZBINARY
CMPAL,1BH
JEEXIT
ANDAL,0FH
CBW
XCHGAX,BX
MULB1
ADDBX,AX
JMPINPUT
BINARY:
MOVDL,0AH
MOVAH,2
INT21h
MOVCX,16
LEADX,B2
MOVAH,9
INT21h
DISP:
MOVDL,0
ROLBX,1
RCLDL,1
ORDL,30h
MOVAH,2
INT21H
LOOPDISP
MOVDL,'B'
MOVAH,2
INT21H
JMPff
EXIT:
MOVAH,4CH
INT21h
FUNCTION1:
MOVDX,OFFSETD0
MOVAH,9
INT21H
MOVDX,OFFSETD1
MOVAH,0AH
INT21H
LEADX,D2
MOVAH,9
INT21H
MOVCL,D1+1
CMPCL,00
JZEXIT
MOVCH,00H
MOVSI,2
G1:
MOVAL,D1[SI]
CMPAL,'a'
JBNEXT
CMPAL,'z'
JANEXT
SUBD1[SI],20h
NEXT:
INCSI
LOOPG1
MOVCH,00
MOVCL,D1+1
MOVSI,2
G2:
MOVDL,D1[SI]
MOVAH,02H
INT21H
INCSI
LOOPG2
JMPff
leadx,pkey
movah,9
int21h;outputstringatds:
dx
;waitforanykey....
movah,1
int21h
movax,4c00h;exittooperatingsystem.
int21h
ends
endstart;setentrypointandstoptheassembler.
4程序调试,仿真
4.1小写字母向大写字母转换
4.2十进制向二进制装换
5总结
本次课程设计有四个设计课题可供选择,我选择了代码转换程序设计的题目。
本次的课程设计是一个相对而言比较简单的设计,因为这次设计仅是运用eum8086的仿真。
在写程序前觉得很简单,思路也很清晰,可是等做起来发现真的好难。
首先先将输入的字符ACSII码转换为数字,再向2进制转换。
转换过程较复杂。
本次课程设计,不仅使我加深了对emu8086的认识,对86系列微型计算机的指令系统也有了进一步的了解,也增强了分析故障的能力,更重要的是培养我面对问题时解决问题的能力。
这次课程设计还是比较成功的。
当然我还有很多不足之处,比如知识掌握的不够全面,研究的深度不够,有问题就心灰意冷,程序编写不会查漏补缺。
这些都是我需要去改进的地方。
我会在以后的学习中多加注意。