微机专业课程设计报告.doc
《微机专业课程设计报告.doc》由会员分享,可在线阅读,更多相关《微机专业课程设计报告.doc(35页珍藏版)》请在三一办公上搜索。
1、微机专业课程设计报告摘要汇编语言实质就是机器语言的一个高级的形式。微机原理与接口技术课程要求掌握汇编语言编辑,调试技术及接口芯片的编程与使用。作为自动化专业的学生这门课更是必须掌握的,是我们学习更深层次的专业知识的基础。本次课程设计利用汇编语言的特点,编写程序,通过键盘输入一个16进制数,通过屏幕提示菜单选择转换成2进制,8进制或者10进制数并显示。程序设计由一个输入16进制数的子程序、输出2进制的子程序、输出8进制的子程序、输出10进制的子程序,然后利用CALL指令及DOS指令编写出主程序及将结果在屏幕上显示出来。编写程序的过程,包括程序功能分析、划分程序模块、设计程序流程图、编写程序、调试
2、程序和结果分析。通过此课程设计的汇编语言练习,可以熟悉汇编语言的寻址方式和指令系统,BIOS和DOS系统功能调用,程序设计方法并熟悉汇编的编程环境。关键字: 汇编语言 数制转换 DOS调用 程序调试数制转换程序设计1 设计意义及要求 设计意义通过课程设计,能够对所学知识有更进一步的理解,并能掌握学习理论时没有注意的细节。调试程序,排除故障有助于提高分析问题、解决问题的能力。课程设计中碰到的挫折,有助于养成良好的学习习惯、严谨的工作作风。通过此课程设计的汇编语言练习,可以熟悉汇编语言的寻址方式和指令系统,BIOS和DOS系统功能调用,程序设计方法并熟悉汇编的编程环境。 设计要求设计内容:编写程序
3、,通过键盘输入一个16进制数,通过屏幕提示菜单选择转换成2进制,8进制或者10进制数并显示。设计要求:1) 按屏幕提示要求输入,从屏幕上获得正确结果。2)了解汇编语言的设计方法,熟悉汇编语言的寻址方式、指令系统和DOS系统功能调用画出流程图,按照自己目的编写源程序,并以模块化方式注释源程序。3)画出流程图,按照自己目的编写源程序,并以模块化方式注释源程序。4)撰写实验报告,认真完成报告。报告内容包括:软件思想,流程图,源程序及程序注释调试记录及结果分析;总结;参考资料;附录:芯片资料或程序清单。附加设计要求:若输入的16进制不是0至F间的数字,则显示出错信息,并要求重新输入。2 方案论证 需求
4、分析1)十六进制转换成二进制:输入一个十六进制数,用二进制数表示输出;最多能把四位十六进制数用十六位二进制数表示输出。2)十六进制转换成十进制数:输入一个十六进制数,用十进制数表示输出;最大能把十六进制数FFFF转换成十进制数65535表示输出。3)十六进制转换成八进制数:输入一个十六进制数,用八进制数表示输出;最大能把十六进制数FFFF转换成八进制数表示输出。要求通过键盘输入一个16进制数,通过屏幕提示菜单选择转换成2进制,8进制或者10进制数并显示。根据此要求需要设计一个输入16进制数的子程序、输出2进制的子程序、输出8进制的子程序、输出10进制的子程序,然后利用CALL指令及DOS指令编
5、写出主程序及将结果在屏幕上显示出来。 设计过程 进制介绍1)十进制数:十进制的基本运算规则是“逢十进一”的。上例中右边第一位为个位,记作100;第二位为十位,记作 101;第三、四位为百位和千位,记作 102 和103 。通常把100、101、102、103 称为是对应数位的权,各数位的权都是基数的幂。每个数位对应的数字符号称为系数。显然,某数位的数值等于该位的系数和权的乘积。 2)二进制数 ( Binary ) :与十进制类似,二进制的基数为2 ,即二进制中只有两个数字符号(0和1)。二进制的基本运算规则是“逢二进一”,各位的权为 2 的幂。 3)八进制数 ( Octal ): 在八进制中,
6、基数为8 ,它有0至8八个数字符号,八进制的基本运算规则是“逢八进一”,各数位的权是 8 的幂。 4)十六进制数 (Decimal): 在十六进制中,基数为16 ,它有 0 F 十六个数字符号,十六进制的基本运算规则是“逢十六进一”,各数位的权是 16 的幂。 进制转换1)十六进制数转换成二进制数因为四位二进制数正好表示 0 F 16个数字,所以一个十六进制数要转换成二进制数时,以小数点为界分别向左向右开始,每四位分为一组,一组一组地转换成对应的十六进制数字。若最后不足四位时,整数部分在最高位前面加 0 补足四位再转换十六进制与二进制对照表如下:表2-1 十六进制与二进制对照表16进制0123
7、45672进制0000000100100011010001010110011116进制89ABCDEF2进制100010011010101111001101111011112)十六进制数转换成十进制数把任意十六进制写成位权展开式后,再求和,就可以得到对应的十进制数。3)十六进制数转换成八进制数先将十六进制数转换成二进制数,再将二进制数转换成八进制数。八进制与二进制对照表如下:表2-2 八进制与二进制对照表8进制012345672进制000001010011100101110111由表2-1和表2-2可从16进制转换到2进制,再从2进制转换到8进制。综合以上,可编写16进制转换成2进制、16进制
8、转换成10进制、16进制转换成8进制的子程序。 概要设计整个程序由四个主要的子程序和若干个辅助子程序组成,实现3个转换功能:主要的子程序:INHEX用来输入一个十六进制数,并放在BX中;OUTBIN用来把一个十六进制数转换成二进制数输出;OUTDEC用来把一个十六进制数转换成十进制数输出;OUTOCT用来把一个十六进制数转换成八进制数输出;辅助子程序:CRLF用来换行;DEC2用来除以各位十进制的权主程序框架:L1:调用INHEX,输入一个十六进制数;再调用CRLF,换行;调用OUTBIN,输出一个二进制数;再调用CRLF,换行;再跳转到START。L2: 调用INHEX,输入一个十六进制数;
9、再调用CRLF,换行;调用OUTDEC,输出一个十进制数;再调用CRLF,换行;再跳转到START。L3:调用INHEX,输入一个十六进制数;再调用CRLF,换行;调用OUTOCT,输出一个八进制数;再调用CRLF,换行;再跳转到START。L0:输入为0时,则跳出。3流程图显示主界面选择数字转换方式AH=0,AX循环左移1位AX=1?结束AX=2?AX=3?AX=0?Y以L1为首地址以L3为首地址以L2为首地址YNYN开始YNN图3-1 主程序流程图程序开始可以由提示页面选择需要将十六进制转换成二进制、十进制、八进制,程序调用过程中,要是出现非十六进制字符便会出现出错提示返回重新填写,根据选
10、项有1(十六进制转换成二进制)、2(十六进制转换成十进制)、3(十六进制转换成八进制);输入0则退出程序。数制转换方式选择调用过程如图3-2,3-3,3-4:调用INHEX调用CRLF调用OUTOCT调用CRLF结束开始调用INHEX调用CRLF调用OUTBIN调用CRLF结束开始调用INHEX调用CRLF调用OUTDEC调用CRLF结束开始图3-2 转到L1调用过程图3-3 转到L2调用过程图3-4 转到L3调用过程图3-2是调用输出八进制的过程,通过调用CRLF、接着调用OUTOCT、然后再调用CRLF,这样的调用之后可以通过对输入数值的判断可以完成相应的由十六进制向十进制的转换功能。图3
11、-3、图3-4的原理跟上述一样,同样可以完成十六进制向二进制和十进制的转换功能。INHEX子程序流程图如3-5:显示输入提示BX清零输入一个字符给ALAL=0DH?AL30H?AL10?AL减7,转为字母AL10?AL16?AL-20H送给ALAL16?出错提示NNYYYBX循环左移4位AL与BL相或返回NYNYNYYN开始N图3-5 输入十六进制数子程序流程图流程图为输入一个四位十六进制的数,显示操作提示,并对输入的四位十六进制数进行判断,十六进制数的各位上要是出现超出0-9、a-f,就出现错误提示,程序将不会执行,返回重新输入。OUTBIN子程序如图3-6,OUTOCT子程序如图3-7:显
12、示输出提示CX16BX循环左移一位DLBLDL最低位取反,其余位清零转换成ASCII码输出数据并显示返回BX左移1位把最右面的1位转为ASCII码显示一个字符循环计数值置为5BX循环左移3位把最右面的3位转为ASCII码显示一个字符结束Y循环计数值=0?N开始开始图3-6 转换成二进制子程序流程图 图3-7 转换成八进制子程序流程图图3-6、图3-7分别为十六进制转换成二进制和八进制的流程图,二进制的转换过程根据位权转换;而转换成八进制则是先转换成2进制再向八进制转换。图OUTDEC子程序如图3-8,除权子程序DECIV如图3-9: CX置10000d调用子程序CX置1000d调用子程序CX置
13、100d调用子程序CX置10d调用子程序CX置1d调用子程序把二进制数转入AXDX清零除法运算余数移入BX商移入DL商转为ASCII显示商结束结束开始开始图3-9 DEC2除权子程序流程图图3-8 转换成十进制子程序流程图 4程序模块1)换行子程序CRLF:将0DH(回车),0AH(换行)输出,达到换行的效果,子程序模块如下:CRLF PROC ;定义换行子程序MOV AH,02H MOV DL,0DH INT 21H MOV DL,0AH INT 21H RETCRLF ENDP2)输入一个四位十六进制数,当输入不是0 F之间的数时,则显示出错提示“input error”,将输入的十六进制
14、数存放在BX中。子程序模块INHEX如下:INHEX PROC NEAR ;定义输入一个十六进制数子程序LEA DX,mess1 ;把mess3的首地址给DX MOV AH,09H INT 21H ;调用DOS功能,输出DX中字符串并显示 MOV BX,0 ;把BX清零IHL1: MOV AH,01H ;输入一个字符并显示 INT 21H CMP AL,0DH JZ IHEXIT ;按回车键时返回 SUB AL,30H ;判断是否数字或字母 JL KKK ;小于30H时显示出错信息 CMP AL,10 ;判断是否数字 JL IHL2 SUB AL,7 ;把AL内容减7转为字母 CMP AL,1
15、0 ;判断是否小写字母(af) JL KKK CMP AL,16 JB IHL2 ;小于则跳转 SUB AL,20H ;判断是否大写字母(AF) CMP AL,10 JL KKK CMP AL,16 JGE KKKIHL2: MOV CL,4 ;作为循环条件 SHL BX,CL OR BL,AL JMP IHL1KKK: MOV AH,09H ;输入不是0F之间的数时,则提示输入错误 LEA DX,mess2 INT 21H JMP LIHEXIT: RET INHEX ENDP3)输出二进制,将BX中数据循环左移1位,再将BL中数据送给DL,将DL中数据转换为ASCII码30H或31H,调用
16、DOS功能,输出0或1,即输出二进制。子程序模块OUTBIN如下所示:OUTBIN PROCLEA DX,mess3 ;把mess3的首地址给DX MOV AH,09H INT 21H ;调用DOS功能,输出DX中字符串并显示 MOV CX,16 ;计数OBL1: ROL BX,1 ;循环左移一位,将BX中最到位转换成最低位 MOV DL,BL ;将BL中数据给DL AND DL,01H ;DL中最低位取反 OR DL,30H ;将DL中高四位转换为3,低四位不变 MOV AH,02H ;调用DOS2号功能,将DL中数据输出并显示为0或1 INT 21H LOOP OBL1 ;循环OBL1 R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 专业课程 设计 报告

链接地址:https://www.31ppt.com/p-1598829.html