ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:257.86KB ,
资源ID:22830870      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/22830870.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(汇编十六进制数与十进制数之间的转换Word格式文档下载.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

汇编十六进制数与十进制数之间的转换Word格式文档下载.docx

1、时间安排第十六周:编辑程序 进行调试第十七周:验收 教研室主任:年 月 日目 录内 容 摘 要 1一课设概述 21.设计内容 22.实验要求 23.实验目的 2二设计环境 21.Masm for window集成实验环境介绍 22.DOS系统功能调用 23.汇编语言的上机过程 3三设计方案 41.设计思想 42.设计方案 4四总原理图 6五程序清单 61.方法一 62.方法二 9六运行结果 12七实验体会 12八参考文献 13内 容 摘 要汇编语言是一种面向计算机的程序设计语言,和机器语言相比,汇编语言编写程序可以用助记符来表示指令的操作码和操作数,也可以用标号来替代地址,常量和变量,还引入了

2、新的汇编指令伪指令和宏指令。高级程序设计语言使用了更接近人们的自然语言和习惯的教学语言来描述具体的算法,使编写的程序更加直观和简练。高级语言通常都包含有各种函数计算,字符串处理,数据I/O等功能。高级语言通常是独立于具体机器的,程序员可不必了解机器的指令系统和内部的具体结构,可以把精力集中在正确掌握语言的语法桂策和程序运算上。编写的程序容易被阅读和修改。此次课设内容以微软公司的宏汇编MASM为背景,主要学习汇编的语法规则,同时应用一些磁盘操作系统的功能调用和基本输入输出系统的中断调用。DOS是用户和微型计算机之间的接口,用户依靠DOS来管理微型计算机。DOS向用户提供了许多命令及系统功能,用户

3、可以在DOS提示符下键入命令来实现对计算机的操作。课设中多次用到DOS指令。索引关键词:汇编语言 伪指令 宏指令 DOS中断一课设概述1.设计内容:编程实现十六进制数向十进制数之间的转换。2.实验要求:3.实验目的:学习数值和数值的相互转换方法,并熟练掌握汇编语言语法的使用,DOS系统功能调用,并学习循环结构的设计。二设计环境 1.Masm for window集成实验环境介绍Masm for Windows 集成实验环境是从事一线教学的大学教师针对汇编语言初学者的特点开发的一个简单易用的汇编语言的学习软件,它具有错误信息自动定位、关键字实时帮助(动画演示汇编指令执行过程)、语法着色、无限的撤

4、消与恢复、WORD式的查找、替换、定位、支持中文长文件名、软件可以安装在任意文件夹等功能。2.DOS系统功能调用 使用DOS提供的程序控制硬件。优点是兼容性好,使用方便。DOS是IBM PC系列微机的操作系统(现在的微机仍能运行DOS,而且新的操作系统也能继续提供几乎所有的DOS功能调用)负责管理系统的所有资源,协调微机的操作,其中包括大量可供用户调用的服务程序。DOS的功能调用不依赖于具体的硬件系统。所有的DOS系统功能调用都是利用软件中断指令INT 21H来实现的。也就是说,在程序中需要调用DOS功能的时候,只要使用一条INT 21H指令即可。INT 21H是一个具有90多个子功能的中断服

5、务程序,这些子功能大致可以分为四类:设备管理、目录管理、文件管理和其他。其功能一览表可参见附录。为了方便用户使用这些子功能,INT 21H对每一个子功能都进行了编号称为功能号。这样,用户就能通过指定功能号来调用INT 21H的不同子功能。DOS系统功能调用的方法如下:(1)-功能号。(2)在其他寄存器中放入该功能所要求的人口参数。(3)在执行INT 21H指令。(4)分析出口参数。3.汇编语言的上机过程 源文件的建立和汇编: (1)建立源程序文件 规定源程序文件的扩展名为.ASM(2)汇编源程序文件 检查源程序中的语法错误并给出出错信息产生目标文件(OBJ文件),列表文件(LST文件)和对应文

6、件(CRF文件)展开宏指令目标文件的链接:(1) 找到要连接的所有目标文件(2) 确定所有段地址的地址值(3) 确定所有浮动地址和外部符号所对应的存储地址(4) 生成.EXE可执行文件执行文件的调用三设计方案1.设计思想在计算机系统中有多种数制和编码,常用的数制有二进制、八进制以及十六进制,常用的代码有BCD码、ASCll码和七段显示码等。这些数制和编码根据其作用的不同,在存储形式上也有差异。在实际应用中,它们也因使用的要求不同而有所差异。在配备操作系统管理程序的计算机中,有些代码转换程序已在系统管理软件中编好。还有些代码转换需要根据使用要求通过编程完成。因此,代码转换是非数据处理中最常见的情

7、况。十六进制向十进制的转换分成两个大的步骤。一是从十六进制向二进制的转换,由于十六进制和二进制的特殊关系,它们之间的转换非常简单。二是从二进制转换为十进制,相对而言,这种转换复杂一些。所以该模块的核心是实现二进制数向十进制数的转换。方法是将要转换的二进制数预先放到AX寄存器中,判断AX中数的符号,若为负数,则将负号送入输出缓冲区,并求AX的绝对值;若AX中的数为正数,则不做其他处理,此时AX中即为无符号二进制数。然后将无符号二进制数转换成十进制数,可采用将AX除以 10,得到第一个商和第一个余数,第一个余数就是所求十进制数的个位:将第一个商除以10,得到第二个商和余数,第二个余数就是所求十进制

8、数的十位数,重复以上过程,一直循环到商为0时,得到的余数就是所求十进制数的最高位数。这就是数制转换中常用的“除模留余倒排列”法则。2.设计方案(1)实现十六进制数向二进制数的转换第一步:实现十六进制数的输入和对应二进制数的转换。利用DOS系统功能中的1号输入字符的功能,接收输入的十六进制数,将其转换成对应的二进制数(若是0-9之间的数直接屏蔽高4位,若是A-F之间的书在屏蔽高4位后还要加9)。BX中存放的是二进制数的结果,利用算数左移指令讲BX左移4位,然后与下一次转换后的数相加。如此循环4次,得到对应的二进制数。第二步:实现显示转化后的二进制数。利用ROL和RCL指令,从最高为起循环取出每位

9、二进制数,将其转换成对应的ASSCII码,调用DOS系统功能调用中2号功能显示。(2)实现二进制数向十六进制数的转换。用循环左移指令ROL每次移动4位,取出移到最低的4位,利用十六进制数所对应的ASSCII码比其本身大30H(0-9)或37H(A-Z)的关系,将低4位转换成所对应的ASSCII码,在调用DOS系统功能2号(显示字符)功能,将转换后的字符显示出来,如此循环四次。(3)本程序的难点是如何把二进制转化为十进制,并将其输出。我们采用了除以10,把取余数保存的方法,现在以十进制数132为例,采用除以10并取余的方法,主要是因为不知道有二进制转化的真值所构成的十进制数有几位。132/10=

10、13.2 保存2,又因为13!=0,所以继续运算13/10=1.3 保存3,又因为1!1/10=01 保存1,0=0,所以结束此运算如下图所示:经过相关处理,把保存的数据变成0-9的ASSCII码。所以保存的数据为:“2”“3”“1”在经过转置,把倒序的结果顺序化,得到结果:这样就解决了二进制转化为十进制数的算法。四总原理图五程序清单1.方法一CODE SEGMENT MAIN PROC FAR ASSUME CS:CODE START: CALL HEXIBIN ;16-2 CALL CRLF ;换行CALL BINIDEC ;2-10 CALL CRLF JMP MAIN ;get nex

11、t input RET MAIN ENDP HEXIBIN PROC NEAR MOV BX,0 ;clear BX for number NEWCHAR: MOV AH,01H ;keyboard input INT 21H ;call DOS SUB AL,30H ;ASCII to binary JL EXIT ;jump if 9d JL ADD_TO ;yes,so its digit ;not digit(0-9),may be letter(a to f) SUB AL,27H ;convert ASCII to binary CMP AL,0AH ;is it 0a hex?y

12、es,not letter CMP AL,10H ; 0f hex? JGE EXIT ;is hex digit,add to number in BX ADD_TO: MOV CL,4 SHL BX,CL MOV AH,0 ADD BX,AX JMP NEWCHAR EXIT: HEXIBIN ENDP BINIDEC PROC NEAR MOV CX,10000D CALL DEC_DIV MOV CX,1000D MOV CX,100D MOV CX,10D MOV CX,1D DEC_DIV PROC NEAR MOV AX,BX ;number low half MOV DX,0

13、;zero out high half DIV CX MOV BX,DX ;remainder into BX MOV DL,AL ;quotient into DLprint the contents of DL on screen ADD DL,30H ;convert to ASCII MOV AH,02H INT 21H DEC_DIV ENDP BINIDEC ENDP CRLF PROC NEAR MOV DL,0AH MOV DL,0DH CRLF ENDP CODE ENDS END START2.方法二data segment m dw 10 dup(?) rec db 5

14、dup(?) ;记录因子 MESSAGE5 DB Welcome to the system!,13,10,13,10 DB The function of the program is changing H(16)numbers into D(10) numbers.,13,10Please enter the number.,13,10,13,10,$ data ends code segment main proc far assume cs:code,ds:data start: push ds mov ax,data mov ds,ax mov bx,0 LEA DX,MESSAGE

15、5 MOV AH,09H输出提示语newchar: mov ah,1 ;键盘输入 int 21h sub al,30h jl ini ; f输出 add_to: mov cl,4 shl bx,cl mov ah,0 add bx,ax mov m,bx jmp newchar ini: mov ax,m mov bx,10 mov si,4 change: mov dx,0 div bx mov rec+si,dl dec si cmp ax,0 ja change output: inc si mov dl,rec+si add dl,30h mov ah,02h cmp si,4 jb

16、output mov dl,20h exit: mov ah,4ch int 21h main endp code ends end start六运行结果通过设计和编写程序代码,运行程序后,其结果先为显示开始界面几位菜单界面,而后随意输入一个十六进制数,打完字敲回车,马上出现所对应的十进制数。同时,再打回车,可以再输入十六进制数,并且可以循环运行。七实验体会通过这次的课程设计,让我们对汇编语言有了更进一步的认识,加强了我们用汇编语言的能力。并经过修改,完成了简单的设计。汇编语言程序设计是一门很抽象的科学,学起来也比较难,但随着学习的推进,以及上机编程,逐渐感到轻松,在这次课程设计中,让我更加熟

17、悉了汇编语言的一些基本的指令;掌握了汇编语言的一些基本的中断调用功能,可以用汇编语言调用各种中断调用功能,并由此实现对硬件的控制;熟练的利用子程序和宏进行编程。在设计过程中,不断对程序进行修改,改进,增强了自己分析问题解决问题的能力:在不断的调试中,也让自己发现了自己存在的一些错误以及一些调试时应注意的问题,同时也更深的理解了寄存器,存储器等工作原理以及一些指令执行后对它们的改变,例如,int指令会改变al的值,在编程时应注意这方面的问题。在编写过程中,让我深刻的体会到了科学的严谨性。有时一个逗号或者写错一个字母这样一点点小错误,就会产生很大的错误,导致调试的失败。当设计一步步接近成功,每一个子程序的调试成功,都让自己感到喜悦,从中体会到编程的乐趣,有一种成就感,也让自己树立了信心,增强了对汇编语言程序设计的兴趣。八参考文献微型计算机原理与接口技术 张荣标 等编著 电子工程系 微机原理 课程设计成绩评定专业: 电子信息工程 班级: 学号: 207姓名:课题名称设计任务与要求学习数值和数值的相互转换方法。多文件的链接方法。编程实现十六进制数向十进制数之间的转换,并按屏幕提示要求输入,从屏幕上获得正确结果。最后进行循环运行。指导教师评语建议成绩: 指导教师:课程小组评定评定成绩: 课程负责人: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1