微机原理十六进制转十进制课设.docx
- 文档编号:8937284
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:15
- 大小:48.46KB
微机原理十六进制转十进制课设.docx
《微机原理十六进制转十进制课设.docx》由会员分享,可在线阅读,更多相关《微机原理十六进制转十进制课设.docx(15页珍藏版)》请在冰豆网上搜索。
微机原理十六进制转十进制课设
北华航天工业学院
课程设计报告(论文)
设计课题:
代码转换
(十六进制数向十进制数之间的转换)
专业班级:
电子信息工程B09212
学生姓名:
指导教师:
设计时间:
2011--12--23
北华航天工业学院电子工程系
微机原理 课程设计任务书
姓 名:
专 业:
电子信息工程
班 级:
B09212
指导教师:
职 称:
课程设计题目:
代码转换(十六进制数向十进制数之间的转换)
已知技术参数和设计要求:
1.编程实现十六进制数向十进制数之间的转换。
2.学习数值和数值的相互转换方法。
3.按屏幕提示要求输入,从屏幕上获得正确结果。
4.实现循环运行。
所需仪器设备:
计算机
成果验收形式:
1.笔试 2.屏幕显示 3.设计报告
参考文献:
微机原理与接口技术
8086实验指导书
时间
安排
第十六周:
编辑程序进行调试
第十七周:
验收
指导教师:
教研室主任:
年 月 日
目 录
内 容 摘 要 ………………………………………………… 1
一.课设概述 ………………………………………………… 2
1.设计内容 ………………………………………………… 2
2.实验要求 ………………………………………………… 2
3.实验目的 ………………………………………………… 2
二.设计环境 ………………………………………………… 2
1.Masmforwindow集成实验环境介绍 ………………… 2
2.DOS系统功能调用…………………………………………2
3.汇编语言的上机过程………………………………………3
三.设计方案 ………………………………………………… 4
1.设计思想 ………………………………………………… 4
2.设计方案 ………………………………………………… 4
四.总原理图 ………………………………………………… 6
五.程序清单 ………………………………………………… 6
1.改进的新方案 …………………………………………… 6
六.运行结果 ……………………………………………… 10
七.实验体会 ………………………………………………… 11
八.参考文献 …………………………………………………11
内 容 摘 要
汇编语言是一种面向计算机的程序设计语言,和机器语言相比,汇编语言编写程序可以用助记符来表示指令的操作码和操作数,也可以用标号来替代地址,常量和变量,还引入了新的汇编指令——伪指令和宏指令。
高级程序设计语言使用了更接近人们的自然语言和习惯的教学语言来描述具体的算法,使编写的程序更加直观和简练。
高级语言通常都包含有各种函数计算,字符串处理,数据I/O等功能。
高级语言通常是独立于具体机器的,程序员可不必了解机器的指令系统和内部的具体结构,可以把精力集中在正确掌握语言的语法桂策和程序运算上。
编写的程序容易被阅读和修改。
此次课设内容以微软公司的宏汇编MASM为背景,主要学习汇编的语法规则,同时应用一些磁盘操作系统的功能调用和基本输入输出系统的中断调用。
DOS是用户和微型计算机之间的接口,用户依靠DOS来管理微型计算机。
DOS向用户提供了许多命令及系统功能,用户可以在DOS提示符下键入命令来实现对计算机的操作。
课设中多次用到DOS指令。
索引关键词:
汇编语言 伪指令 宏指令 DOS中断
一.课设概述
1.设计内容:
编程实现十六进制数向十进制数之间的转换。
2.实验要求:
编程实现十六进制数向十进制数之间的转换。
3.实验目的:
学习数值和数值的相互转换方法,并熟练掌握汇编语言语法的使用,DOS系统功能调用,并学习循环结构的设计。
二.设计环境
1.Masmforwindow集成实验环境介绍
MasmforWindows集成实验环境是从事一线教学的大学教师针对汇编语言初学者的特点开发的一个简单易用的汇编语言的学习软件,它具有错误信息自动定位、关键字实时帮助(动画演示汇编指令执行过程)、语法着色、无限的撤消与恢复、WORD式的查找、替换、定位、支持中文长文件名、软件可以安装在任意文件夹等功能。
2.DOS系统功能调用
使用DOS提供的程序控制硬件。
优点是兼容性好,使用方便。
DOS是IBMPC系列微机的操作系统(现在的微机仍能运行DOS,而且新的操作系统也能继续提供几乎所有的DOS功能调用)负责管理系统的所有资源,协调微机的操作,其中包括大量可供用户调用的服务程序。
DOS的功能调用不依赖于具体的硬件系统。
所有的DOS系统功能调用都是利用软件中断指令INT21H来实现的。
也就是说,在程序中需要调用DOS功能的时候,只要使用一条INT21H指令即可。
INT21H是一个具有90多个子功能的中断服务程序,这些子功能大致可以分为四类:
设备管理、目录管理、文件管理和其他。
其功能一览表可参见附录。
为了方便用户使用这些子功能,INT21H对每一个子功能都进行了编号——称为功能号。
这样,用户就能通过指定功能号来调用INT21H的不同子功能。
DOS系统功能调用的方法如下:
(1)AH->功能号。
(2)在其他寄存器中放入该功能所要求的入口参数。
(3)在执行INT21H指令。
(4)分析出口参数。
3.汇编语言的上机过程
源文件的建立和汇编:
(1)建立源程序文件 规定源程序文件的扩展名为.ASM
(2)汇编源程序文件
检查源程序中的语法错误并给出出错信息
产生目标文件(OBJ文件),列表文件(LST文件)
和对应文件(CRF文件)
展开宏指令
目标文件的链接:
(1)找到要连接的所有目标文件
(2)确定所有段地址的地址值
(3)确定所有浮动地址和外部符号所对应的存储地址
(4)生成.EXE可执行文件
执行文件的调用
三.设计方案
1.设计思想
在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCll码和七段显示码等。
这些数制和编码根据其作用的不同,在存储形式上也有差异。
在实际应用中,它们也因使用的要求不同而有所差异。
在配备操作系统管理程序的计算机中,有些代码转换程序已在系统管理软件中编好。
还有些代码转换需要根据使用要求通过编程完成。
因此,代码转换是非数据处理中最常见的情况。
十六进制向十进制的转换分成两个大的步骤:
一是从十六进制向二进制的转换,由于十六进制和二进制的特殊关系,它们之间的转换非常简单。
二是从二进制转换为十进制,相对而言,这种转换复杂一些。
所以该模块的核心是实现二进制数向十进制数的转换。
方法是将要转换的二进制数预先放到AX寄存器中,判断AX中数的符号,若为负数,则将负号送入输出缓冲区,并求AX的绝对值;若AX中的数为正数,则不做其他处理,此时AX中即为无符号二进制数。
然后将无符号二进制数转换成十进制数,可采用将AX除以10,得到第一个商和第一个余数,第一个余数就是所求十进制数的个位:
将第一个商除以10,得到第二个商和余数,第二个余数就是所求十进制数的十位数,重复以上过程,一直循环到商为0时,得到的余数就是所求十进制数的最高位数。
这就是数制转换中常用的“除模留余倒排列”法则。
2.设计方案
(1)实现十六进制数向二进制数的转换
第一步:
实现十六进制数的输入和对应二进制数的转换。
利用DOS系统功能中的1号输入字符的功能,接收输入的十六进制数,将其转换成对应的二进制数(若是0-9之间的数直接屏蔽高4位,若是A-F之间的数在屏蔽高4位后还要加9)。
BX中存放的是二进制数的结果,利用算数左移指令使BX左移4位,然后与下一次转换后的数相加。
如此循环4次,得到对应的二进制数。
第二步:
实现显示转化后的二进制数。
利用ROL和RCL指令,从最高位起循环取出每位二进制数,将其转换成对应的ASSCII码,调用DOS系统功能调用中2号功能显示。
(2)实现二进制数向十六进制数的转换。
用循环左移指令ROL每次移动4位,取出移到最低的4位,利用十六进制数所对应的ASSCII码比其本身大30H(0-9)或37H(A-Z)的关系,将低4位转换成所对应的ASSCII码,在调用DOS系统功能2号(显示字符)功能,将转换后的字符显示出来,如此循环四次。
(3)本程序的难点是如何把二进制转化为十进制,并将其输出。
我们采用了除以10,把取余数保存的方法,现在以十进制数132为例,采用除以10并取余的方法,主要是因为不知道有二进制转化的真值所构成的十进制数有几位。
132/10=13………2 保存2,又因为13!
=0,所以继续运算
13/10=1…………3 保存3,又因为1!
=0,所以继续运算
1/10=0…………1 保存1,0==0,所以结束此运算
如下图所示:
经过相关处理,把保存的数据变成0-9的ASSCII码。
所以保存的数据为:
“2”
“3”
“1”
在经过转置,把倒序的结果顺序化,得到结果:
“1”
“3”
“2”
这样就解决了二进制转化为十进制数的算法。
四.总原理图
为Y
5.程序清单
1.改进的新方案
DATA SEGMENT
CR EQU 0DH;回车
LF EQU 0AH;换行
DAT1 DB'Qingshurushiliujinzhishu:
',CR,LF,'$';请输入十六进制数
DAT2 DB'Shuchushijinzhishu:
',CR,LF,'$';输出十进制数
DATA ENDS
CODE SEGMENT
ASSUME CS:
CODE,DS:
DATA
MAIN PROC FAR
START:
CALL HEXIBIN ;16-2
CALL CRLF ;换行
CALL BINIDEC ;2-10
CALL CRLF
JMP MAIN ;输入下一个四位十六进制数
RET
MAIN ENDP
HEXIBIN PROC NEAR
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSETDAT1 ;DS:
DX指向字符串DAT1
MOV AH,09H ;DOS 9号功能调用
INT 21H
MOV BX,0 ;将BX清零
MOV DX,0 ;将DX清零
NEWCHAR:
CMP Dx,04H ;用DX控制输入数的个数为4位
JZ EXIT
MOV AH,01H ;键盘输入数据
INT 21H ;DOS 1号功能调用
SUB AL,30H ;ASCII转为2进制
JL EXIT ;如果小于零就跳出,输入不合法
CMP AL,10D ;判断是否超出十
JL ADD_TO ;如果没超出十就是十进制数;如果超出十那
么可能是A到F的字母输入
SUB AL,27H ;将ASCII变为十进制字母要加九
CMP AL,0AH ;将它与字母a转化成的数比较
JL EXIT ;如果小就跳转
CMP AL,10H ;将它与字母f的转化码比较
JGE EXIT ;如果大就跳出
ADD_TO:
MOV CL,4
SHL BX,CL
MOV AH,0
ADD BX,AX
INC DX
JMP NEWCHAR ;在BX中存储转化的二进制数为二进制转化为
十进制做准备
EXIT:
RET
HEXIBIN ENDP
BINIDEC PROC NEAR
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSETDAT2
MOV AH,09H
INT 21H
MOV CX,10000D
CALL DEC_DIV
MOV CX,1000D
CALL DEC_DIV
MOV CX,100D
CALL DEC_DIV
MOV CX,10D
CALL DEC_DIV
MOV CX,1D
CALL DEC_DIV
RET
DEC_DIV PROC NEAR
MOV AX,BX ;将BX的数送入AX中
MOV DX,0 ;将被除数高位清零
DIV CX
MOV BX,DX ;余数保存在BX中
MOV DL,AL ;商放入DL显示
ADD DL,30H ;将数变为ASCII码
MOV AH,02H
INT 21H
RET
DEC_DIV ENDP
BINIDEC ENDP
CRLF PROC NEAR
MOV DL,0AH
MOV AH,02H
INT 21H
MOV DL,0DH
MOV AH,02H
INT 21H
RET
CRLF ENDP
CODE ENDS
END START
六.运行结果
通过设计和编写程序代码,运行程序后,其结果先为显示开始界面几位菜单界面,而后随意输入一个小于4位的十六进制数,打完字敲回车,马上出现所对应的十进制数。
当连续输入4位的十六进制数直接输出十进制数,同时,再打回车,可以再输入十六进制数,并且可以循环运行。
七.实验体会
通过这次的课程设计,让我们对汇编语言有了更进一步的认识,加强了我们用汇编语言的能力。
并经过修改,完成了简单的设计。
汇编语言程序设计是一门很抽象的科学,学起来也比较难,但随着学习的推进,以及上机编程,逐渐感到轻松,在这次课程设计中,让我更加熟悉了汇编语言的一些基本的指令;掌握了汇编语言的一些基本的中断调用功能,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制;熟练的利用子程序和宏进行编程。
在设计过程中,不断对程序进行修改,改进,增强了自己分析问题解决问题的能力:
在不断的调试中,也让自己发现了自己存在的一些错误以及一些调试时应注意的问题,同时也更深的理解了寄存器,存储器等工作原理以及一些指令执行后对它们的改变,例如,int指令会改变al的值,在编程时应注意这方面的问题。
在编写过程中,让我深刻的体会到了科学的严谨性。
有时一个逗号或者写错一个字母这样一点点小错误,就会产生很大的错误,导致调试的失败。
当设计一步步接近成功,每一个子程序的调试成功,都让自己感到喜悦,从中体会到编程的乐趣,有一种成就感,也让自己树立了信心,增强了对汇编语言程序设计的兴趣。
8.参考文献
《微型计算机原理与接口技术》第1版 张荣标等编著
《微型计算机原理与接口技术》第2版 张荣标等编著
电子工程系 微机原理 课程设计成绩评定
专业:
电子信息工程 班级:
B09212学号:
姓名:
课题名称
代码转换(十六进制数向十进制数之间的转换)
设计任务与要求
学习数值和数值的相互转换方法。
多文件的链接方法。
编程实现十六进制数向十进制数之间的转换,并按屏幕提示要求输入,从屏幕上获得正确结果。
最后进行循环运行。
指导教师评语
建议成绩:
指导教师:
课程小组评定
评定成绩:
课程负责人:
年 月 日
文档已经阅读完毕,请返回上一页!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 十六进制 十进制
![提示](https://static.bdocx.com/images/bang_tan.gif)