汇编语言学习知识代码转换大小写二进制十进制16进制的相当转换.doc
.微机原理与接口技术课程设计(学年论文)说明书课题名称: 代码转换程序设计(A3-2) 学生学号: 专业班级: 学生姓名: 学生成绩: 指导教师: 陈 裕 国 课题工作时间: 2011-6-13 至 2011-6-18 武汉工程大学教务处 制填写说明:1. 一、二、三项由指导教师在课程设计(学年论文)开始前填写并交由学生保管;2. 四、五两项由学生在完成课程设计后填写,并将此表与课程设计一同装订成册交给指导教师;3. 成绩评定由指导教师按评定标准评分。4. 此表格填写好后与正文一同装订成册。一、课程设计任务和基本要求: (一) 设计任务使用汇编语言设计一个程序,实现大小写字母、二进制与十六进制、十六进制与十进制的转换。1. 有提示从键盘输入,在提示中最好给一个输入的例子;2. 输入错误或者输入其他字符,有提示输入错误的信息显示;3. 能够多次输入和显示结果。4. 实现从键盘输入16位二进制数,转换成4位十六进制数显示出来。(二) 基本要求1. 有程序设计的分析、思路说明;2. 有程序流程框图;3. 程序代码及注释说明;4. 上机实验步骤;5. 程序运行结果的截屏图片。指导教师签字: 教研室主任签字:年 月 日 年 月 日二、进度安排:周一上午:明确课程设计任务和要求、设计原理。周一下午周三上午: 查看参考资料、完成理论设计(程序代码、原理图等)。周三下午周五: 上机、实验、调试,完成设计。周六上午: 检查设计结果、提问、答辩。周六下午: 撰写课程设计报告。三、应收集资料及主要参考文献:(一)应收集资料 1.有关DOS调用、ASCII码、BCD码的知识;2. 大小写字母、二进制与十六进制、十六进制与十进制的转换方法;3.8086宏汇编的相关定义、调用。(二)主要参考文献1. 宋杰,汪志宏,江敏.微机原理与接口技术课程设计M.北京:机械工业出版社,20062. 冯博琴.微型计算机计原理与接口技术M.北京:清华大学出版社,2007 3. 王玉良.微机原理与接口技术M.北京:北京邮电大学出版社,20004. 龚尚福.微机原理与接口技术M.西安:西安电子科技大学出版社,20085. 刘锋.微机原理与接口技术M. 北京:机械工业出版社,2009四、课程设计摘要(中文):本次课程设计的主要目的是利用汇编语言编写一个程序,实现从键盘多次输入和显示结果从而达到大小写字母、二进制与十六进制、十进制与十六进制之间的转换;并且当输入错误的字符时,会显示错误信息.大小写转换,主要利用小写字母比大小字母大20H的关系,将小写字母减20H就转换为大写字母,将大写字母加20H就转换为小写字母;二进制、十进制以及16进制,主要利用0到9的数值等于相应ASCALL码减30H,而A到F的数值等于相应ASCALL码减37H,这样即可利用移位,将键盘输入的值以二进制形式存储在寄存器中,除十取余取整等方法实现其相互转换。通过这次课程设计,我们了解了宏汇编指令的特点,DOS功能调用的用法,加深了对程序进行汇编的理解,进一步掌握了8088系统中一些指令的用法,从而加深了对课本知识的理解,使我们学以致用,把理论应用于实践.五、课程设计摘要(英文): 六、成绩评定:指导教师评语: 指导教师签字: 200 年 月 日项目评价项目评价调查论证工作量、工作态度实践能力分析、解决问题能力质量创新得分七、答辩记录:答辩意见及答辩成绩答辩小组教师(签字): 200 年 月 日总评成绩:(教师评分75%+答辩成绩25%)课程设计评审标准(指导教师用)评价内容具 体 要 求权重调查论证能独立查阅文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获得新知识的能力。0.1实践能力能正确选择研究(实验)方法,独立进行研究工作。如装置安装、调试、操作。0.2分析解决问题能力能运用所学知识和技能去发现与解决实际问题;能正确处理实验数据;能对课题进行理论分析,得出有价值的结论。0.2工作量、工作态度按期圆满完成规定的任务,工作量饱满,难度较大,工作努力,遵守纪律;工作作风严谨务实。0.2质量综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学;文字通顺,技术用语准确,符号统一,编号齐全,书写工整规范,图表完备、整洁、正确;论文结果有应用价值。0.2创新工作中有创新意识;对前人工作有改进或独特见解。0.1代码转换程序设计说明书1、 方案论证(1) 大小写字母、二进制与十六进制、十六进制与十进制的转换方法在计算机系统中有多种数制和编码,常用的有二进制,八进制以及16进制。这些数制和编码虽然在储存形式上各有差异,但彼此也相互联系。大小写转换,主要利用小写字母比大小字母大20H的关系,将小写字母减20H就转换为大写字母,将大写字母加20H就转换为小写字母。二进制,十进制以及16进制,主要利用0到9的数值等于相应ASCALL码减30H,而A到F的数值等于相应ASCALL码减37H,这样即可利用移位,除十取余取整等方法实现其相互转换。(2) 宏汇编程序设计要点宏是源程序中的一段有独立功能的程序代码。宏指令,用户自定义的指令。编程序时候,将多次使用的功能用一条宏指令来代替。汇编包括指令 ,伪指令,宏指令。前两个都是规定的,最后一个是自己设计的。 好处是用起来方便定义,但是要先定义,后调用,其优点是可以随时随地的调用宏汇编程序。2、 程序设计(1) 总体设计对“实现从键盘输入16位二进制数,转换成4位十六进制数显示出来。”的分析处理。首先将键盘输入的二进制数以二进制形式储存起来:每次输入,将其ASCALL码值将减去30H,然后左移一位,在然后与下个输入的减30H的数相加,这样就将键盘输入的值以二进制形式储存在寄存器中.二进制转换为16进制数输出:用循环指令左移四位,取出最低4位,利用16进制所对应的ASCALL码值比其本身大30H或37H的关系,将低位转换成对应的ASCALL码值,再调用DOS系统显示字符功能,将转换后的字符显示出来,如此循环四次即可.程序总流程图:(2)程序设计二进制转十六进制流程图:程序代码及注释:;7.ASMPUBLIC XPEXTRNINFO4:BYTE,INFO1:BYTE,INFO2:BYTECODE SEGMENTXP PROC FAR ASSUME CS:CODE CALL DEC2BIN ;调用将键盘输入的ASCALL值转换为二进制数LEA DX,INFO2MOV AH,9INT 21H ;显示提示信息CALLBIN2HEX;调用将储存的二进制转换为16进制函数MOV DL,HMOV AH,2INT 21HRETCAL: MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H LEA DX,INFO4MOV AH,9INT 21H;输入非二进制数,显示错误DEC2BINPROC NEAR LEA DX,INFO1MOV AH,9INT 21H;显示提示信息XOR BX,BX ;BX清零NEWCHAR:MOV AH,1 INT 21H ;键盘输入,存放在AL中CMP AL,0DHJERE;如果输入回车键,键盘输入结束SUBAL,30H JL CAL CMP AL,1 JGCAL ;输入为非二进制数,显示错误并退出CBW XCHG AX,BX MOV CX,2 MUL CXXCHG AX,BX ADD BX,AX JMP NEWCHAR;将键盘输入的制转换为二进制数,存放在BX中,并且每输入一个值,先将BX左移一位再相加.RE:MOV DL,BMOV AH,2INT 21HRET DEC2BINENDP BIN2HEXPROCNEAR MOV CH,4 ROTATE:MOV CL,4 ROLBX,CL ;BX每左移4位输出,四位二进制表示一位十六进制MOV AL,BL AND AL,0FH ADD AL,30H CMP AL,3AH JL PRINTIT ;结果若为0到9的数,则加30H后直接输出ADD AL,07H ;结果若为A到F的数,则加30H后再加07H直接输出PRINTIT:MOV DL,AL MOV AH,2 INT 21H DEC CH JNE ROTATE RET BIN2HEXENDP CRLFPROCNEAR MOV DL,0DH MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H ;回车换行RET CRLFENDP XP ENDPCODE ENDS END3、 程序调试步骤与结果(1) 编辑源程序(2) 汇编源程序 (3) 连接程序(4) 在TD中调试程序(5)程序运行结果结果说明:当输入小写字母(如a)时,就转换成相应的大写字母(如A),反之亦然;当如入二进制(如1011B),就转换成相应的十六进数(000BH),反之亦然;如果输入的字母或数字不符合要求,就会显示“INPUT ERROR”4、 结论