版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北华航天工业学院课程设计报告(论文)设计课题:代码转换(十六进制数向十进制数之间的转换)专业班级:电子信息工程B09212学生姓名:指导教师:20111223设计时间:北华航天工业学院电子工程系微机原理课程设计任务书姓名:专业:电子信息工程班级:B09212指导教师:职称:课程设计题目:代码转换(十六进制数向十进制数之间的转换)已知技术参数和设计要求:1. 编程实现十六进制数向十进制数之间的转换。2. 学习数值和数值的相互转换方法。3. 按屏幕提示要求输入,从屏幕上获得正确结果。4. 实现循环运行。所需仪器设备:计算机成果验收形式:1.笔试2屏幕显示 3.设计报告参考文献:微机原理与接口技术8
2、086实验指导书时间 安排第十六周:编辑程序进行调试第十七周:验收指导教师:教研室主任:内容摘要 1一. 课设概述 21设计内容 22. 实验要求 23. 实验目的 2二. 设计环境 2for window集成实验环境介绍 2系统功能调用23.汇编语言的上机过程 3三. 设计方案 41设计思想 42. 设计方案 4四. 总原理图 6五. 程序清单 61. 改进的新方案 6六. 运行结果 10七. 实验体会 11A.参考文献 11内容摘要汇编语言是一种面向计算机的程序设计语言,和机器语言相比, 汇编语言编写程序可以用助记符来表示指令的操作码和操作数,也可 以用标号来替代地址,常量和变量,还引入了
3、新的汇编指令一一伪指 令和宏指令。高级程序设计语言使用了更接近人们的自然语言和习惯的教学语 言来描述具体的算法,使编写的程序更加直观和简练。高级语言通常 都包含有各种函数计算,字符串处理,数据1/()等功能。高级语言通 常是独立于具体机器的,程序员可不必了解机器的指令系统和内部的 具体结构,可以把精力集中在正确掌握语言的语法桂策和程序运算上。 编写的程序容易被阅读和修改。此次课设内容以微软公司的宏汇编MASM为背景,主要学习汇编的 语法规则,同时应用一些磁盘操作系统的功能调用和基本输入输出系 统的中断调用。DOS是用户和微型计算机之间的接口,用户依靠DOS来管理微型计 算机。DOS向用户提供了
4、许多命令及系统功能,用户可以在DOS提示 符下键入命令来实现对计算机的操作。课设中多次用到DOS指令。索引关键词:汇编语言伪指令宏指令DOS中断一. 课设概述1 设计内容:编程实现十六进制数向十进制数之间的转换。2. 实验要求:编程实现十六进制数向十进制数之间的转换。3. 实验目的:学习数值和数值的相互转换方法,并熟练掌握汇编语言语法的使用,DOS系统功能调 用,并学习循环结构的设计。二. 设计环境for window集成实验环境介绍Masm for Windows集成实验环境是从事一线教学的大学教师针对汇编语言初学者的特 点开发的一个简单易用的汇编语言的学习软件,它具有错误信息自动定位、关键
5、字实时帮 助(动画演示汇编指令执行过程)、语法着色、无限的撤消与恢复、WORD式的查找、替换、 定位、支持中文长文件名、软件可以安装在任意文件夹等功能。系统功能调用使用DOS提供的程序控制硬件。优点是兼容性好,使用方便。DOS是IBM PC系列微机的操作系统(现在的徴机仍能运行DOS,而且新的操作系统也 能继续提供几乎所有的DOS功能调用)负责管理系统的所有资源,协调微机的操作,其中 包括大量可供用户调用的服务程序。DOS的功能调用不依赖于具体的硬件系统。所有的DOS系统功能调用都是利用软件中断指令INT 21H来实现的。也就是说,在程 序中需要调用DOS功能的时候,只要使用一条INT 21H
6、指令即可。I7T21H是一个具有90 多个子功能的中断服务程序,这些子功能大致可以分为四类:设备管理、目录管理、文件 管理和其他。其功能一览表可参见附录。为了方便用户使用这些子功能,INT 21H对每一 个子功能都进行了编号称为功能号。这样,用户就能通过指定功能号来调用INT 21H的不同子功能。DOS系统功能调用的方法如下:(1) A H-功能号。(2) 在其他寄存器中放入该功能所要求的入口参数。(3) 在执行INT 21H指令。(4) 分析出口参数。3. 汇编语言的上机过程源文件的建立和汇编:(1) 建立源程序文件 规定源程序文件的扩展名为.ASM(2) 汇编源程序文件检查源程序中的语法错
7、误并给出出错信息I产生目标文件(OBJ文件),列表文件(LST文件)和对应文件(CRF文件)展开宏指令目标文件的链接:(1) 找到要连接的所有目标文件(2) 确定所有段地址的地址值(3) 确定所有浮动地址和外部符号所对应的存储地址,(4)生成.EXE可执行文件执行文件的调用三. 设计方案1. 设计思想在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制, 常用的代码有BCD码、ASC11码和七段显示码等。这些数制和编码根捋其作用的不同,在 存储形式上也有差异。在实际应用中,它们也因使用的要求不同而有所差异。在配备操作 系统管理程序的计算机中,有些代码转换程序已在系统管理软件中
8、编好。还有些代码转换 需要根据使用要求通过编程完成。因此,代码转换是非数据处理中最常见的情况。十六进制向十进制的转换分成两个大的步骤:一是从十六进制向二进制的转换,由于十六进制和二进制的特殊关系,它们之间的 转换非常简单。二是从二进制转换为十进制,相对而言,这种转换复杂一些。所以该模块的核心是 实现二进制数向十进制数的转换。方法是将要转换的二进制数预先放到AX寄存器中,判 断AX中数的符号,若为负数,则将负号送入输出缓冲区,并求AX的绝对值;若AX中的 数为正数,则不做其他处理,此时AX中即为无符号二进制数。然后将无符号二进制数转 换成十进制数,可采用将AX除以10,得到第一个商和第一个余数,
9、第一个余数就是所求 十进制数的个位:将第一个商除以10,得到第二个商和余数,第二个余数就是所求十进制 数的十位数,重复以上过程,一直循环到商为0时,得到的余数就是所求十进制数的最高 位数。这就是数制转换中常用的“除模留余倒排列”法则。2. 设计方案(1)实现十六进制数向二进制数的转换第一步:实现十六进制数的输入和对应二进制数的转换。利用DOS系统功能中的1 号输入字符的功能,接收输入的十六进制数,将其转换成对应的二进制数(若是0-9之间 的数直接屏蔽高4位,若是A-F之间的数在屛蔽高4位后还要加9)。BX中存放的是二进 制数的结果,利用算数左移指令使BX左移4位,然后与下一次转换后的数相加。如
10、此循 环4次,得到对应的二进制数。第二步:实现显示转化后的二进制数。利用ROL和RCL指令,从最高位起循环取 出每位二进制数,将其转换成对应的ASSCII码,调用DOS系统功能调用中2号功能显示。(2)实现二进制数向十六进制数的转换。用循环左移指令ROL每次移动4位,取出移到最低的4位,利用十六进制数所对应的ASSCII码比其本身大30H(0-9)或37H(A-Z)的关系,将低4位转换成所对应的ASSCII码.在调用DOS系统功能2号(显示字符)功能,将转换后的字符显示出来,如此循环四次。(3) 本程序的难点是如何把二进制转化为十进制,并将其辙出。我们采用了除以10,把取余数保存的方法,现在以
11、十进制数132为例,采用除以10并取余的方法,主要是因为不知道有二进制转化的真值所构成的十进制数有几位。132/10=132保存2,又因为13!=0,所以继续运算13/10=13保存3,又因为1!=0,所以继续运算1/10=0I 保存I, 0-0,所以结束此运算如下图所示:经过相关处理,把保存的数据变成0-9的ASSCII码。所以保存的数据为:“2”“3”“ 1 ”经过转置,把倒序的结果顺序化,得到结果:a 99“3”“2”样就解决了二进制转化为十进制数的算法。四. 总原理图五. 程序清单1.改进的新方案DATA SEGMENTCREQUODH;回车LFEQUOAH;换行DAT1 DB'
12、;Qingshurushi 1 iujinzhishu: * ,CR. LF. '请输入十六进制数DAT2 DB* Shuchushi jinzhishu: 1 tCR.LF, $ ;输出十进制数DATA ENDSCODE SEGMENTASSUMECS:CODErDS:DATAM/INPROCFARSTART:CALLHEXIBIN;16-2CALLCRLF;换行CALLBINIDEC;2-10CALLCRLFJMPMAIN;输入下一个四位十六进制数RETMAINENDPHEXIBINPROCNEARMOVAX,DATAMOVDS, AXMOVDX,OFFSETDAT1 :DS:DX
13、指向字符串DAT1MOVAH,09H;DOS 9号功能调用INT21HMOVBX,0;将直乂清零MOVDX,0;将。乂清零NEWCHAR:CMPDx,04H:用DX控制输入数的个数为4位JZEXITMOVAH.O1H;键盘输入数据INT21H;DOS 1号功能调用SUBAL,30H;ASCII转为2进制JLEXIT;如果小于零就跳出,输入不合法CMPAL,1OD;判断是否超出十JLADD TO;如果没超出十就是十进制数;如果超出十那SUBAL,27H么可能是A到F的字母输入;将ASCII变为十进制字母要加九CMPAL.OAH;将它与字母a转化成的数比较JLEXIT;如果小就跳转CMPAL,1O
14、H;将它与字母f的转化码比较JGEEXIT;如果大就跳出ADD TO:MOVCL,4SHLBX,CLMOVAH,0ADDBX,AXINCDXJMPNEWCHAR:在BX中存储转化的二进制数为二进制转化为EXIT:RETHEXIBIN ENDPBINIDEC PROCNEAR十进制做准备MOVAX,DATAMOVDS, AXMOVDX,OFFSETDAT2MOVAH.09HINT21HMOVCX,1OOOODCALLDEC DIVMOVCX,1OOODCALLDEC DIVMOVCX,1OODCALLDEC DIVMOVCXUODCALLDEC DIVMOVCX, IDCALLDEC DIVRE
15、TDEC_DIV PROCNEARMOVAX.BX;将1的数送入AX中MOVDX,0;将被除数高位清零DIVexMOVBX,DX;余数保存在BX中MOVDL,AL;商放入DL显示ADDDL,30H;将数变为ASCII码MOVAH,02HINT21HRETDEC.DIVENDPBINIDECENDPCRLFPROCNEARMOVDL,OAHMOVAIL02HINT21HMOVDL,ODHMOVAH.02HINT21HRETCRLFENDPCODEENDSENDSTART六. 运行结果通过设计和编写程序代码,运行程序后,其结果先为显示开始界面几位菜单界面, 而后随意输入一个小于4位的十六进制数,打
16、完字敲回车,马上出现所对应的十进制数。 当连续输入4位的十六进制数直接输出十进制数,同时,再打回车,可以再输入十六进制 数,并且可以循环运行。l.RSM(48): warning A4001: Extra characters on line50520 十 415208 Bytes symbol space free2 Warning Errors0 Severe ErrorsD:Mds心LINK l.OBJMicrosoft (R) Overlay Linker Version 3.60Copyright (C) Microsoft Corp 1983-1987. Pl I rights r
17、eserved.Run File l.EXEJ:List File INUL.MfiP:Libraries (.LIB:LINK : warning L4021: no stack segimontD:NasW>DEBUG 1.EXE- GQingshurushiliujinzhishu:123人Shuchushij inzhishu:04660Qingshurushiliuj inzhishu:七. 实验体会通过这次的课程设计,让我们对汇编语言有了更进一步的认识,加强了我们用汇编 语言的能力。并经过修改,完成了简单的设计。汇编语言程序设计是一门很抽象的科学,学起来也比较难,但随着学习的
18、推进,以 及上机编程,逐渐感到轻松,在这次课程设计中,让我更加熟悉了汇编语言的一些基本的 指令;掌握了汇编语言的一些基本的中断调用功能,可以用汇编语言调用各种中断调用功 能,并由此实现对硬件的控制;熟练的利用子程序和宏进行编程。在设计过程中,不断对程序进行修改,改进,增强了自己分析问题解决问题的能力: 在不断的调试中,也让自己发现了自己存在的一些错误以及一些调试时应注意的问题,同 时也更深的理解了寄存器,存储器等工作原理以及一些指令执行后对它们的改变,例如, int指令会改变al的值,在编程时应注意这方面的问题。在编写过程中,让我深刻的体会到了科学的严谨性。有时一个逗号或者写错一个字 母这样一点点小错误,就会产生很大的错误,导致调试的失败。当设计一步步接近成功,每一个子程序的调试成功,都让自己感到喜悦,从中体会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 护理课件制作工具及介绍
- 护理微创新:跨学科合作模式
- 呼吸道疾病的口腔预防
- 护理质量改进工具与方法
- 护理工作压力与心理健康
- 《照亮你我他》教学课件-2025-2026学年苏少版(新教材)小学美术二年级下册
- 零售业循环经济模式副总经理面试要点
- 集成电路封装行业分析报告
- 快消品行业销售运营主管面试要点
- 基于机器学习的在线教育质量评估系统研究报告
- 平方根(第1课时)课件2025-2026学年人教版七年级数学下册
- 江苏省重点高中2026届高三九校联考数学试卷(含答案详解)
- 2026年嘉兴市秀洲区区级机关事业单位招聘编外人员6人笔试备考题库及答案解析
- 2026年六安职业技术学院单招职业适应性考试题库含答案详解(能力提升)
- 国有企业内控合规不相容岗位分离管理制度
- 卫生院医保内部管理制度
- 2026年职业院校产业导师聘任合同
- 航空航天产品研发质量承诺书范文5篇
- smeta社会责任培训课件
- 老视矫正课件
- 沟渠清理合同协议
评论
0/150
提交评论