课程设计报告--汇编程序设计(进制转换)

合集下载

汇编语言程序+十六进制转换为二进制(子程序调用)

汇编语言程序+十六进制转换为二进制(子程序调用)
ret
dec_div endp
binidec endp
crlf proc near
mov dl,0ah
mov ah,display
int doscall
mov dl,0dh
mov ah,display
int doscall
ret
crlf endp
hexidec ends
end start
七、总结
1.调试程序时,一定要注意程序的正确性,经多次发现错误然后进行调试,这些宝贵的经验可以为以后编写程序时提醒;
jmp main
ret
main endp
hexibin proc near
mov bx,0
newchar:
mov ah,key_in
int doscall
sub al,30h
jl exit
cmp al,10d
jl add_to
sub al,27h
cmp al,0ah
jl exit
cmp al,10h
《汇编语言程序设计》实验报告
实验名称子程序调用程序设计
一、实验目的及要求
1)熟悉命令格式,功能,加强对指令系统的理解;
2)编写简单子程序结构程序;
3)单步跟踪调试,观察寄存器的变化和指令执行的结果;
二、实验环境
硬件环境:一台微型计算机;
软件环境:windows xp,debug环境,masm
三、实验内容
四、设计:
设计思想:提供可以反复调用的子程序来自构,相当于高级语言当中的过程和函数。
五、调试与测试
调试过程:
1.HEXIDEC是一个把十六进制数转换成十进制数的程序。要求把从键盘输入的0~FFFFH的十六进制正数转换为十进制数并在屏幕上显示出来。

c语言进制转换课程设计

c语言进制转换课程设计

c语言进制转换课程设计一、课程目标知识目标:1. 理解进制转换的基本概念,掌握二进制、十进制、八进制及十六进制之间的转换方法。

2. 掌握C语言中进制转换的相关语法知识,如位运算、整数表示等。

3. 能够运用所学知识解决实际问题,如编写程序进行不同进制间的转换。

技能目标:1. 培养学生运用C语言进行进制转换的实际操作能力。

2. 培养学生分析问题、解决问题的能力,提高编程思维。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学生主动学习的积极性。

2. 培养学生良好的编程习惯,注重代码规范,提高代码质量。

3. 培养学生的团队合作精神,鼓励学生在学习过程中相互交流、分享经验。

课程性质分析:本课程为C语言进制转换部分,属于计算机编程学科。

课程内容具有实用性、操作性强的特点,要求学生在掌握理论知识的基础上,能够运用C语言进行实际编程。

学生特点分析:本课程针对的是高年级学生,他们已经具备了一定的C语言基础,熟悉基本语法和编程环境。

学生对新鲜事物充满好奇,但学习主动性有待提高。

教学要求:1. 结合学生特点,注重理论与实践相结合,提高学生的实际操作能力。

2. 通过案例分析、小组讨论等形式,激发学生的学习兴趣,培养学生的编程思维。

3. 注重教学过程中的反馈,及时调整教学策略,提高教学效果。

二、教学内容1. 引入进制转换的概念,包括二进制、十进制、八进制和十六进制的表示方法及其特点。

- 教材章节:第3章“数据的表示与运算”2. 讲解C语言中进制转换的基础知识,如整型数据类型的位表示、进制之间的转换规则。

- 教材章节:第4章“基本数据类型与表达式”3. 通过实例演示二进制与十进制之间的转换方法,包括按权展开法、短除法等。

- 教材案例:例3.1“二进制转十进制”4. 掌握C语言中的位运算符及其应用,如按位与、按位或、左移、右移等。

- 教材章节:第5章“运算符与表达式”5. 编写进制转换的C语言程序,实现二进制、十进制、八进制和十六进制之间的互相转换。

进制转换c语言课程设计

进制转换c语言课程设计

进制转换c语言课程设计一、教学目标本章节的教学目标包括以下三个方面:1.知识目标:使学生掌握进制转换的基本概念和原理,理解不同进制之间的转换方法,并能够运用C语言实现各种进制的转换。

2.技能目标:培养学生运用C语言进行编程的能力,能够独立完成各种进制转换程序的设计和实现。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,提高学生解决问题的能力和创新意识。

二、教学内容本章节的教学内容主要包括以下几个部分:1.进制转换的基本概念和原理:介绍十进制、二进制、八进制和十六进制等不同进制的定义和表示方法,以及它们之间的转换关系。

2.C语言实现进制转换:讲解如何使用C语言编写程序实现不同进制之间的转换,包括整数和小数的转换。

3.进制转换程序设计:通过实例分析和练习,培养学生运用C语言进行进制转换程序的设计和实现能力。

三、教学方法为了实现本章节的教学目标,将采用以下几种教学方法:1.讲授法:讲解进制转换的基本概念和原理,以及C语言实现进制转换的方法和技巧。

2.案例分析法:通过分析具体的进制转换实例,引导学生理解和掌握进制转换的原理和方法。

3.实验法:安排实验课,让学生亲自动手编写和运行进制转换程序,培养学生的编程能力和实践能力。

四、教学资源为了支持本章节的教学内容和教学方法的实施,将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,提供进制转换的基本概念和原理,以及C语言编程的方法和技巧。

2.多媒体资料:制作PPT和教学视频,生动形象地展示进制转换的原理和方法,以及C语言编程的步骤和技巧。

3.实验设备:提供计算机和编程环境,让学生能够实际编写和运行进制转换程序,提高学生的实践能力。

五、教学评估本章节的教学评估将采用以下几种方式:1.平时表现:评估学生的课堂参与度、提问回答和小组讨论等情况,以考察学生的学习态度和积极性。

2.作业:布置相关的进制转换练习题,评估学生对知识的掌握程度和编程能力。

3.考试:安排一次考试,测试学生对进制转换的原理和方法的掌握程度,以及C语言编程的能力。

c语言课程设计进制转换

c语言课程设计进制转换

c语言课程设计进制转换一、教学目标本章节的教学目标是使学生掌握C语言中的进制转换,包括二进制、八进制和十进制的相互转换。

具体目标如下:1.了解不同进制的表示方法和转换规则。

2.掌握C语言中进制转换的函数和用法。

3.能够手动进行不同进制之间的转换。

4.能够使用C语言编写程序实现进制转换。

情感态度价值观目标:1.培养学生的逻辑思维和解决问题的能力。

2.培养学生对计算机科学的兴趣和热情。

二、教学内容本章节的教学内容主要包括以下几个方面:1.进制转换的基本概念和规则。

2.C语言中进制转换的函数和用法。

3.手动进行进制转换的练习。

4.使用C语言编写程序实现进制转换的练习。

三、教学方法为了达到本章节的教学目标,将采用以下教学方法:1.讲授法:讲解进制转换的基本概念和规则,以及C语言中进制转换的函数和用法。

2.案例分析法:通过分析实际案例,引导学生理解和掌握进制转换的原理和方法。

3.实验法:让学生通过编写C语言程序,手动进行进制转换的练习,加深对进制转换的理解和掌握。

四、教学资源为了支持本章节的教学内容和教学方法的实施,将准备以下教学资源:1.教材:C语言编程教程。

2.参考书:C语言参考手册。

3.多媒体资料:PPT课件,进制转换的动画演示。

4.实验设备:计算机,编程环境。

五、教学评估为了全面、客观、公正地评估学生在进制转换方面的学习成果,将采用以下评估方式:1.平时表现:通过学生在课堂上的参与度、提问回答和讨论表现来评估其对进制转换的理解和掌握程度。

2.作业:布置相关的进制转换练习题,要求学生在规定时间内完成,并根据其作业的正确性和提交情况给予评分。

3.考试:在课程结束后,安排一次进制转换的考试,包括选择题、填空题和编程题,以检验学生对进制转换知识的掌握和应用能力。

六、教学安排本章节的教学安排如下:1.教学进度:按照教材的章节安排,合理安排每个课时的教学内容,确保覆盖进制转换的各个方面。

2.教学时间:每个课时为45分钟,合理安排讲解、练习和讨论的时间。

进制转换c课程设计

进制转换c课程设计

进制转换c 课程设计一、课程目标知识目标:1. 理解进制转换的基本概念,掌握二进制、八进制、十进制和十六进制之间的转换方法;2. 学会使用数学原理和逻辑推理进行不同进制间的转换;3. 掌握在实际问题中运用进制转换解决计算和存储等相关问题。

技能目标:1. 能够准确、迅速地进行不同进制间的转换,提高计算和逻辑思维能力;2. 能够运用所学进制转换知识解决实际生活中的问题,培养学以致用的能力;3. 通过小组合作和讨论,提高团队协作和沟通能力。

情感态度价值观目标:1. 培养学生对计算机科学的兴趣,激发学习积极性;2. 培养学生勇于探索、敢于创新的精神,增强解决问题的信心;3. 增强学生对科技发展对社会进步的作用的认识,提高社会责任感。

本课程针对的学生特点是具备一定的数学基础和逻辑思维能力,对计算机科学感兴趣。

通过本课程的学习,旨在让学生掌握进制转换的知识和技能,培养他们在实际问题中运用所学知识解决问题的能力,同时提高他们的团队协作和沟通能力,激发对科学技术的热爱和探索精神。

在教学过程中,注重理论与实践相结合,关注学生的个体差异,因材施教,确保课程目标的实现。

二、教学内容1. 引入进制概念:介绍不同进制的定义和特点,如二进制、八进制、十进制和十六进制;相关教材章节:第一章 计算机基础知识 第3节 进制与编码2. 进制转换方法:a. 二进制与十进制的转换;b. 八进制与十进制的转换;c. 十六进制与十进制的转换;d. 不同进制间的转换方法。

相关教材章节:第一章 计算机基础知识 第4节 进制转换3. 实际问题中的应用:a. 计算机存储单位与进制转换的关系;b. 网络地址进制转换的实际应用;c. 编程中进制转换的应用。

相关教材章节:第一章 计算机基础知识 第5节 进制转换的应用4. 教学大纲:第一课时:进制概念及二进制与十进制的转换;第二课时:八进制与十进制、十六进制与十进制的转换;第三课时:不同进制间的转换方法及实际问题中的应用。

课程设计进制转化

课程设计进制转化

课程设计进制转化一、教学目标本课程的教学目标是使学生掌握进制转化的基本知识和方法,能够熟练地进行不同进制间的转换。

具体包括:1.知识目标:使学生了解不同进制的定义、特点和转换方法,理解二进制、八进制、十进制和十六进制之间的相互关系。

2.技能目标:培养学生能够运用进制转换方法,解决实际问题,如电子计算机中的数据表示和存储、计算机网络中的数据传输等。

3.情感态度价值观目标:培养学生对计算机科学和信息技术领域的兴趣和好奇心,提高学生分析和解决问题的能力,培养学生的创新精神和团队合作意识。

二、教学内容本课程的教学内容主要包括:1.进制的基本概念:介绍二进制、八进制、十进制和十六进制的定义、特点和表示方法。

2.进制转换方法:讲解不同进制间的转换方法,包括手动转换和编程转换。

3.进制转换在实际应用中的例子:通过实际案例,使学生了解进制转换在电子计算机、计算机网络等领域的应用。

三、教学方法为了达到本课程的教学目标,将采用以下教学方法:1.讲授法:通过讲解进制的基本概念和转换方法,使学生掌握进制转化的理论知识。

2.讨论法:学生进行小组讨论,分享不同进制转换的方法和技巧,培养学生的团队合作和沟通能力。

3.案例分析法:通过分析实际案例,使学生了解进制转换在实际应用中的重要性,提高学生解决问题的能力。

4.实验法:安排实验课程,使学生亲手进行不同进制的转换,培养学生的实践能力和创新精神。

四、教学资源为了支持本课程的教学内容和教学方法的实施,将准备以下教学资源:1.教材:选择一本适合学生水平的进制转化教材,作为学生学习的主要参考资料。

2.参考书:提供一些进制转化的参考书籍,供学生深入学习。

3.多媒体资料:制作多媒体课件,通过动画、图表等形式,生动形象地展示进制转化的概念和方法。

4.实验设备:准备计算机、编程环境等实验设备,供学生进行实验和实践。

五、教学评估为了全面、客观、公正地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答、小组讨论等表现,评估学生的学习态度和积极性。

进制转换汇报课教案[五篇]

进制转换汇报课教案[五篇]

进制转换汇报课教案[五篇]第一篇:进制转换汇报课教案《进制转换》教学设计课题:进制之间的转换教学内容:二进制、八进制、十进制、十六进制之间的转换教授方法:讲授法教学目标:了解数制的基本概念掌握其它进制转十进制和十进制转其它进制的方法教学重难点:二进制、八进制、十进制、十六进制之间的转换进制转换的方法教学活动:一、创设情境、激趣导入时钟工作的原理,让学生了解生活中的进制数,激发学生对进制数的兴趣。

自然语言中一般使用十进制,但计算机处理信息和数据归根结底都是二进制,那二进制数与十进制数之间如何进行转换呢?其他进制数中又是如何进行转换的呢?今天这节课我们就来学习进制数之间的转换方法。

二、新课讲授(一)数制的概念教师组织学生阅读教材,帮助学生理解“基数”和“位权”,了解不同进制对应的缩写。

(二)进行十进制数与二进制数之间的转换教师讲解进制转换方法,学生完成进制转换练习,并对进制数转换方法进行归纳总结。

1.十进制转换为二进制十进制数转换为二进制数时,整数部分和小数部分要分别运算。

(1)十进制整数(除2取余法)将十进制整数除以2,所得的余数即为对应的二进制数低位的值;继续对商除以2,所得的各次余数就是二进制的各位的值。

如此进行直到商等于0为止,最后一项余数为所求二进制最高位的值。

例:(322)10=(101000010)22.二进制转换为十进制(按权展开法)按照二进制数各位的权与该位数码是0或1,分别求出各位代码的数值,然后相加,就得到转换结果。

例:(1011)2=1×10^3+0×10^2+1×10^1+1×10^0(三)二进制、八进制、十六进制之间的转换1.二进制与八进制之间的转换由于8=2×2×2,即8=2³。

可知一位八进制数相当于3位二进制数。

(1)二进制数转换成八进制数将一个二进制数转换成八进制数,只要把二进制数从右往左每三位计算出对应的一位八进制数(不足三位的,前面添加“0”补足三位)。

c语言进制转化课程设计

c语言进制转化课程设计

c语言进制转化课程设计一、课程目标知识目标:1. 学生理解进制的概念,掌握二进制、十进制、八进制和十六进制的基本转换方法;2. 学生掌握C语言中进制转换的相关语法和函数,如位运算、数据类型转换等;3. 学生掌握使用C语言编写进制转换程序的基本步骤和技巧。

技能目标:1. 学生能够运用所学知识,独立编写简单的进制转换程序;2. 学生通过实际操作,提高编程实践能力和问题解决能力;3. 学生能够运用进制转换知识,解决实际问题,如计算机内存表示、文件存储等。

情感态度价值观目标:1. 学生培养对计算机编程的兴趣,激发学习主动性和积极性;2. 学生通过小组合作,培养团队协作精神和沟通能力;3. 学生认识到进制转换在计算机科学中的重要性,增强对计算机科学的认识。

分析课程性质、学生特点和教学要求,本课程旨在帮助学生掌握进制转换的基本知识,培养编程实践能力和问题解决能力。

课程目标具体、可衡量,便于教师进行教学设计和评估。

通过本课程的学习,学生将能够运用所学知识解决实际问题,提高对计算机科学的认识和兴趣。

二、教学内容1. 进制概念:讲解进制的基本概念,比较二进制、十进制、八进制和十六进制的特点;2. 进制转换方法:介绍不同进制之间的转换方法,特别是二进制与十进制的转换;- 教材章节:第三章第三节《进制及其转换》;3. C语言进制转换语法:- 位运算:讲解位运算符及其应用,如按位与、按位或、左移、右移等;- 数据类型转换:介绍C语言中的数据类型转换方法,如强制类型转换、隐式类型转换;- 教材章节:第四章第二节《位运算符与位运算》,第五章第一节《数据类型转换》;4. 编写进制转换程序:通过实例,讲解进制转换程序的编写步骤和技巧;- 教材章节:第六章《编程实例》;5. 实践环节:安排学生进行实际编程操作,巩固所学进制转换知识;6. 案例分析:分析实际案例,如计算机内存表示、文件存储等,让学生了解进制转换在计算机科学中的应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计报告--汇编程序设计(进制转换)汇编语言课程设计报告:代码与数制之间的转换内容提要:本课程设计的主要内容是代码与数制之间的转换~程序的主要功能如下:1. 将十六进制数转换成其对应的ASCII码2. 将ASCII码转换成其对应的十六进制数3. 实现二进制数与十六进制数之间相互转换4. 实现十进制数与二进制数之间相互转换5. 实现十六进制数与十进制数之间相互转换数制转换是计算机科学技术中最为基础的运算~在日常生活中~人们习惯性地使用十进制数进行计算。

而在计算机内部~所有的信息,数、字符、汉字、计算机的指令、状态,都是用二进制数来表示的。

在计算机中~二进制数的运算、处理比十进制数的更容易实现。

有时为了缩短书写~在计算机中还采用十六进制数。

所以~我们需要把数从二进制数形式转换成其他进制的形式~甚至在不同的进位制之间进行转换。

- 1 -汇编语言课程设计报告:代码与数制之间的转换目录一、前言〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 1.1 程设计的目的〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 1.2 代码与数制之间的转换程序的意义〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 1.3 数制之间的转换程序的主要功能〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3正文〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 二、2.1 代码与数制之间相互转换程序的设计大纲〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃3 2.2 代码与数制之间相互转换程序的结构图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃4 2.3 友好交互界面结构图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃5 2.4 程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃62.4.1 主程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃62.4.2 键盘输入子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃62.4.3 ASC码转16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃72.4.4 16进制转ASC进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃82.4.5 2,16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃82.4.6 2?16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃92.4.7 16?2进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃92.4.8 2~10进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃102.4.9 2?10进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃102.4.10 10?2进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃112.4.11 10~16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃112.4.12 10?16进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃122.4.13 16?10进制子程序流程图〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃12三、源程序及其注释〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃13四、课程设计体会〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃29五、参考文献〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃〃29- 2 -汇编语言课程设计报告:代码与数制之间的转换课程设计题目:代码与数制之间的转换一、前言1.1 课程设计的目的, 加深对汇编语言课程理论方面的理解, 通过编写一定规模和难度的程序,进行一次较全面的汇编编程训练,提高分析问题和解决问题的能力, 提高调试程序的能力1.2 代码与数制之间的转换程序的意义数制转换是计算机科学技术中最为基础的运算,在日常生活中,人们习惯性地使用十进制数进行计算。

而在计算机内部,所有的信息,数、字符、汉字、计算机的指令、状态,都是用二进制数来表示的。

在计算机中,二进制数的运算、处理比十进制数的更容易实现。

有时为了缩短书写,在计算机中还采用十六进制数。

所以,我们需要把数从二进制数形式转换成其他进制的形式,甚至在不同的进位制之间进行转换。

1.3 代码与数制之间的转换程序的主要功能, 将十六进制数转换成其对应的ASCII码, 将ASCII码转换成其对应的十六进制数, 实现二进制数与十六进制数之间相互转换, 实现十进制数与二进制数之间相互转换, 实现十六进制数与十进制数之间相互转换二、正文2.1 代码与数制之间相互转换程序的设计大纲本程序主要要完成5大功能:, ASCII码与十六进制数之间的转换, 二进制数与十六进制数之间的转换, 十进制数与二进制数之间的转换, 十进制数与十六进制数之间的转换, 友好的交互界面因此,本程序共需设计一个主程序以及若干个子程序1.主程序:主要实现友好的交互界面的设计,以及代码与数制之间相互转换的子程序调用。

2.子程序:完成各数制之间转换的具体功能实现, 键盘输入子程序:捕捉键盘输入并在屏幕上显示。

- 3 -汇编语言课程设计报告:代码与数制之间的转换 , 换行子程序:控制输出时光标的位置,换行输出。

, ASCII码转成十六进制数子程序:实现ASCII码转成十六进制数。

, 十六进制数转成ASCII码子程序:实现十六进制数转成ASCII码 , 二进制数与十六进制数相互转换子程序:实现对二进制数转成十六进制数子程序和十六进制数转成二进制数子程序的调用。

, 二进制数转成十六进制数子程序:实现二进制数转成十六进制数, 十六进制数转成二进制数子程序:实现十六进制数转成二进制数 , 二进制数与十进制数相互转换子程序:实现对二进制数转成十进制数子程序和十进制数转成二进制数子程序的调用。

, 二进制数转成十进制数子程序:实现二进制数转成十进制数, 十进制数转成二进制数子程序:实现十进制数转成二进制数 , 十进制数与十六进制数相互转换子程序:实现对十进制数转成十六进制数子程序和十六进制数转成十进制数子程序的调用。

, 十进制数转成十六进制数子程序:实现十进制数转成十六进制数, 十六进制数转成十进制数子程序:实现十六进制数转成十进制数2.2 代码与数制之间相互转换程序的结构图- 4 -汇编语言课程设计报告:代码与数制之间的转换 2.3 友好交互界面结构图界面设计用到的是BIOS功能的调用。

其中本程序所使用的功能调用如下:AH=0:设置显示模式。

输入参数:AL=显示模式号,见表如下,返回结果:无返回参数,只是屏幕设置为指定的模式。

模式号分辨率颜色显示方式 0 40列*25行,下略, 16级灰色黑白文本 1 40*25 16色彩色文本 2 80*25 16级灰色黑白文本 3 80*25 16色彩色文本 7 80*25 单色黑白文本 AH=6:屏幕初始化或向上滚动。

输入参数:AL=要滚动的行数,AL=0,全屏滚动,清屏,。

CH=滚动窗口左上角行号,CL,滚动窗口左上角列号 DH=滚动窗口右下角行号,DL,滚动窗口右下角列号BH=滚入行属性。

返回结果:无。

AH=13H:显示字符串。

输入参数:ES:BP=字符串首地址。

CX=串长度。

DH,DL=起始行列号。

BH=显示页号。

AL=0,BL=属性,光标保持在原处,串由字符组成,仅显示字符。

AL=1,BL=属性,光标到串尾,串由字符组成,仅显示字符。

AL=2,光标保持在原处,串由字符及属性组成。

AL=3, 光标到串尾,串由字符及属性组成。

返回结果:无。

界面如下:- 5 -汇编语言课程设计报告:代码与数制之间的转换 2.4 程序流程图2.4.1 主程序流程图2.4.2 键盘输入子程序流程图- 6 -汇编语言课程设计报告:代码与数制之间的转换2.4.3 ASC码转16进制子程序流程图- 7 -汇编语言课程设计报告:代码与数制之间的转换 2.4.4 16进制转ASC进制子程序流程图2.4.5 2,16进制子程序流程图- 8 -汇编语言课程设计报告:代码与数制之间的转换2.4.6 2?16进制子程序流程图2.4.7 16?2进制子程序流程图- 9 -汇编语言课程设计报告:代码与数制之间的转换2.4.8 2,10进制子程序流程图2.4.9 10?2进制子程序流程图- 10 -汇编语言课程设计报告:代码与数制之间的转换 2.4.10 2?10进制子程序流程图2.4.11 10,16进制子程序流程图- 11 -汇编语言课程设计报告:代码与数制之间的转换2.4.12 10?16进制子程序流程图2.4.13 16?10进制子程序流程图- 12 -汇编语言课程设计报告:代码与数制之间的转换三、源代码及其注释stack segment stack'stack'stack ends;*****************************数据段定义********************************data segmentstring1 db'$------------ 计算机0502 20 36 -------$' ;窗口中的提示语st1_len equ $-string1 ; 显示串的长度 st2 db'|--1.将十六进制数转换成对应的ASC?码-----|' ;窗口中的提示语 st2_len equ $-st2 ; 显示串的长度 st3 db'|--2.将ASC?码转换成对应的十六进制数-----|' ;窗口中的提示语 st3_lenequ $-st3 ; 显示串的长度 st4 db'|--3.实现二进制数与十六进制数之间的转换--|' ;窗口中的提示语 st4_len equ $-st4 ; 显示串的长度 st5 db'|--4.实现二进制数与十进制数之间的转换----|' ;窗口中的提示语 st5_len equ $-st5 ; 显示串的长度 st6 db'|--5.实现十进制数与十六进制数之间的转换--|' ;窗口中的提示语 st6_len equ $-st6 ; 显示串的长度 ST61 DB'请选择你所要进行的操作(输入0-5):' ;ST61_LEN EQU $-ST61ST7 DB 20 DUP(?)st0 db'|--0.退出本系统--------------------------|' ST0_LEN EQU $-ST0 ST8 DB'输入错误请重新输入:',13,10,'$'buffer db 80 dup(?)leap db 0ah,0dh,'$'mesg1 db '1.实现2进制转成16进制',13,10db '2.实现16进制转成2进制',13,10,'$'mesg3 db '1.实现2进制转成10进制',13,10db '2.实现10进制转成2进制',13,10,'$'mesg5 db '1.实现10进制转成16进制',13,10db '2.实现16进制转成10进制',13,10,'$' mesg6 db '请输入ASC?码:',13,10,'$'mesg7 db '请输入二进制数:',13,10,'$'mesg8 db '请输入十进制数:',13,10,'$'mesg9 db '请输入十六进制数:',13,10,'$'mesg10 db '它的二进制数是:',13,10,'$'mesg11 db '它的十进制数是:',13,10,'$'mesg12 db '它的十六进制数是:',13,10,'$'mesg13 db '它的ASC?码是:',13,10,'$'data endscode segment- 13 -汇编语言课程设计报告:代码与数制之间的转换assume cs:code,ds:data,ss:stack;******************主程序********************************* begin proc farmov ax,data ; 设置DS=ESmov ds,axmov es,axPRINT: mov ah,0 ;设置显示模式3(彩色文本16色)mov al,3int 10hmov ah,6 ;清屏mov al,0mov ch,0 ;屏幕左上角坐标mov cl,0mov dh,24 ;屏幕右下角坐标mov dl,79mov bh,07 ;属性int 10h;建立小窗口mov ah,6mov al,0mov ch,0 ;左上角坐标mov cl,0mov dh,100 ;右下角坐标mov dl,100mov bh,20h ;绿底黑字,反向显示int 10h;在窗口第一行显示欢迎信息mov ah,13h ;显示字符串lea bp,string1 ;ES:BP=字符串首地址mov cx,st1_len ;CX=串长度mov dh,1 ;显示信息的起始行位置mov dl,20 ;显示信息的起始列位置mov bh,0mov al,1mov bl,64h ;显示的属性为棕底红字int 10h;显示提示信息0;注释同显示第一行信息mov ah,13hlea bp,st0mov cx,st0_lenmov dh,2mov dl,20- 14 -汇编语言课程设计报告:代码与数制之间的转换mov bh,0mov al,1mov bl,12h ;显示的属性为蓝底绿字int 10h;显示提示信息1;注释同显示第一行信息mov ah,13hlea bp,st2mov cx,st2_lenmov dh,3mov dl,20mov bh,0mov al,1mov bl,12h ;显示的属性为蓝底绿字int 10h;显示提示信息2;注释同显示第一行信息mov ah,13hlea bp,st3mov cx,st3_lenmov dh,4mov dl,20mov bh,0mov al,1mov bl,12h ;显示的属性为蓝底绿字int 10h;显示提示信息3;注释同显示第一行信息mov ah,13hlea bp,st4mov cx,st4_lenmov dh,5mov dl,20mov bh,0mov al,1mov bl,12h ;显示的属性为蓝底绿字int 10h;显示提示信息4;注释同显示第一行信息mov ah,13hlea bp,st5mov cx,st5_lenmov dh,6mov dl,20- 15 -汇编语言课程设计报告:代码与数制之间的转换mov bh,0mov al,1mov bl,12h ;显示的属性为蓝底绿字int 10h;显示提示信息5;注释同显示第一行信息mov ah,13hlea bp,st6mov cx,st6_lenmov dh,7mov dl,20mov bh,0mov al,1mov bl,12h ;显示的属性为蓝底绿字int 10h;显示所选操作提示信息;注释同显示第一行信息mov ah,13hlea bp,st61mov cx,st61_lenmov dh,8mov dl,1mov bh,0mov al,1mov bl,24h ;显示的属性为绿底红字int 10hCALL CRLF ;调用换行子程序,控制输出光标下移一行CALL INPUT ;调用键盘输入子程序 ;判断键盘输入repeat:mov dx,0mov ah,1int 21hcmp al,30h ;为0跳至a0JE a0cmp al,31h ;为1跳至a1JE a1cmp al,32h ;为2跳至a2JE a2cmp al,33h ;为3跳至a3JE a3cmp al,34h ;为4跳至a4JE a4cmp al,35h ;为5跳至a5- 16 -汇编语言课程设计报告:代码与数制之间的转换JE a5lea dx,ST8 ;非0,1,2,3,4,5输出提示信息mov ah,9 ;重新输入int 21hjmp repeat ;返回判断键盘输入A0: JMP EXIT ;跳至exitA1: CALL SIXASC ;调用SIXASC子程序,即十六进制转ASC码CALL CRLF ;调用换行子程序,控制输出光标下移一行JMP PRINT ;跳回清屏,显示小窗口A2: CALL ASCIITO16;调用ASCIITO16子程序,即ASC码转十六进制CALL CRLF ;调用换行子程序,控制输出光标下移一行JMP PRINT ;跳回清屏,显示小窗口A3: CALL TWOAND16; 调用TWOAND16子程序,即十六进制与二进制互转CALL CRLF ;调用换行子程序,控制输出光标下移一行JMP PRINT ;跳回清屏,显示小窗口A4: CALL TWOAND10;调用TWOAND10子程序,即十进制与二进制互转CALL CRLF ;调用换行子程序,控制输出光标下移一行JMP PRINT ;跳回清屏,显示小窗口A5: CALL TENAND16;调用TENAND16子程序,即十六进制与十进制互转CALL CRLF ;调用换行子程序,控制输出光标下移一行JMP PRINT ;跳回清屏,显示小窗口;返回DOSEXIT: mov ah,4chint 21hRETBEGIN ENDP;********************键盘调用子程序***********************INPUT PROC NEARL1: MOV AH,1 ;利用INT 16H的功能1探测读键盘INT 16HJZ L1 ;无键按下则循环LEA SI,ST7MOV CX,1L2: MOV AH,0 ;利用INT 16H的功能0读键盘INT 16H;显示所输入的信息- 17 -汇编语言课程设计报告:代码与数制之间的转换OUTPUT: mov ah,1int 21hRETINPUT ENDP;*******************ASC转16进制子程序****************************** ASCIITO16 PROC NEARxor ax,axmov bx,axlea dx,mesg6mov ah,9int 21hascii0: lea si,buffermov cx,2ascii20: mov ah,01hint 21hcmp al,'p' ; 输入‘p’则返回主菜单je quit0cmp al,30hjb error0 ; <0跳回重新输入cmp al,39hja error0 ; >9跳回重新输入and al,0fhmov [si],al ; 取高位inc si ; 取低位loop ascii20lea dx,leap ; 显示回车空行mov ah,09hint 21hlea si,buffermov al,[si] ; 将高位的数存到al中mov cl,4shl al,cl ; 将高位的数移到高四位inc siadd al,[si] ; 将高四位的数加低位cmp al,30hjb error0 ; <0跳回重新输入cmp al,40hjb logo ; <0跳回重新输入cmp al,61hjb error0cmp al,66hja error0logo: mov dl,almov ah,02h- 18 -汇编语言课程设计报告:代码与数制之间的转换int 21hlea dx, leapmov ah,09hint 21hlea dx,mesg12mov ah,9int 21hjmp ascii0error0:lea dx,mesg6mov ah,9int 21hjmp ascii0quit0: retASCIITO16 ENDP;******************16进制转ASC子程序******************************* SIXASC PROC NEARxor ax,axlea dx,mesg9mov ah,09hint 21hlea si,leapascii: mov ah,1int 21hcmp al,'p' ;输入je quitcmp al,30h ; <0跳回重新输入jb errorcmp al,66hja error ; >f的跳回重新输入cmp al,60hja print0 ; >a显示cmp al,39hja error ; >9跳回重新输入 print0: push dxpush axmov buffer,almov dl,buffermov cl ,4shr dl,cladd dl,30hmov ah,02h- 19 -汇编语言课程设计报告:代码与数制之间的转换int 21h ;显示高位mov dl,bufferand dl,0fhadd dl,30hmov ah,02hint 21hpop axpop dx ;显示低位lea dx,leapmov ah,09hint 21hjmp asciierror: lea dx,st8mov ah,09hint 21hjmp ascii ;跳回重新输入 quit: retSIXASC ENDP;******************2,16进制子程序******************************* TWOAND16 PROC NEARcall crlf ;显示提示信息lea dx,mesg1mov ah,09hint 21hCALL INPUT ;调用键盘输入repeat1: mov ah,1int 21hcmp al,31h ;比较输入,为1跳至B1JE B1cmp al,32h ;比较输入,为2跳至B2JE B2lea dx,ST8mov ah,0int 16hjmp repeat1 ;调用2转16B1: CALL CHANGE2TO16RET;调用16转2B2: CALL CHANGE16TO2RETTWOAND16 ENDP;******************2进制转16进制子程序*******************************CHANGE2TO16 PROC NEAR- 20 -汇编语言课程设计报告:代码与数制之间的转换xor ax,axmov bx,axlea dx,mesg7 ;显示提示信息mov ah,9int 21hmov si,4 newchar1: ;输入二进制数mov ah,1int 21hsub al,30h ;将ACII变成十进制数值jl rotate1cmp al,10d ;和10进行比较jl add_to1jmp rotate1 add_to1: ;将二进制数存入bx中mov cl,1shl bx,clmov ah,0add bx,axjmp newchar1 rotate1: ;控制光标并显示提示信息CALL CRLFlea dx,mesg12mov ah,9int 21h rotate1_1:mov cl,4rol bx,cl ;高位和低位对换mov al,bland al,0fh;转换成ASCII add al,30hcmp al,3ahjl print1add al,7h print1: ;输出十六进制数mov dl,almov ah,2int 21hdec sijnz rotate1_1mov ah,1 ;中断int 21hret- 21 -汇编语言课程设计报告:代码与数制之间的转换CHANGE2TO16 ENDP;******************16进制转2进制子程序*******************************CHANGE16TO2 PROC NEARmov bx,0lea dx,mesg9 ;显示提示信息mov ah,9int 21hmov si,16 newchar2: ;输入十六进制数mov ah,1int 21hsub al,30hjl rotate2cmp al,10djl add_to2sub al,27hcmp al,0ahjl rotate2cmp al,10hjge rotate2 add_to2: ; 将十六进制数存入bx中mov cl,4shl bx,clmov ah,0add bx,axjmp newchar2 rotate2: call crlf ;控制光标,并显示提示信息lea dx,mesg10mov ah,9int 21h print2: ;输出二进制数rol bx,1mov al,bland al,1hadd al,30hmov dl,almov ah,2int 21hdec sijnz print2mov ah,1 ;中断int 21h- 22 -汇编语言课程设计报告:代码与数制之间的转换retCHANGE16TO2 ENDP;******************2,10进制子程序******************************* ;本部分说明类似2,16进制子程序,不重复说明 TWOAND10 PROC NEARcall crlflea dx,mesg3mov ah,09hint 21hCALL INPUT repeat2:mov ah,1int 21hcmp al,31hJE c1cmp al,32hJE c2lea dx,ST8mov ah,0int 16hjmp repeat2 ;2转10C1: CALL CHANGE2TO10RET;10转2C2: CALL CHANGE10TO2RETTWOAND10 ENDP;******************2进制转10进制子程序*******************************CHANGE2TO10 PROC NEARlea dx,mesg7 ;显示提示信息mov ah,9int 21hmov bx,0 newchar4: mov ah,1 ;输入二进制数int 21hsub al,30hjl rotate4cmp al,10djl add_to4jmp rotate4 add_to4: mov cl,1 ;将十进制数存入bx中shl bx,clmov ah,0- 23 -汇编语言课程设计报告:代码与数制之间的转换add bx,axjmp newchar4 rotate4: call crlf ;控制光标,并提示信息lea dx,mesg11mov ah,9int 21h ;输出十进制数print4: mov cx,10000d ;显示万位call dec_div4mov cx,1000 ;显示千位call dec_div4mov cx,100 ;显示百位call dec_div4mov cx,10 ;显示十位call dec_div4mov cx,1 ;显示个位call dec_div4mov ah,1int 21hretCHANGE2TO10 ENDPdec_div4 proc near ;除法子程序mov ax,bxmov dx,0div cxmov bx,dxmov dl,aladd dl,30hmov ah,2int 21hretdec_div4 endp;******************10进制转2进制子程序*******************************CHANGE10TO2 PROC NEARlea dx,mesg8 ;显示提示信息mov ah,9int 21hmov bx,0mov si,16 newchar3: ;输入十进制数mov ah,1int 21hsub al,30h- 24 -汇编语言课程设计报告:代码与数制之间的转换jl rotate3cmp al,9djg rotate3cbwxchg ax,bxmov cx ,10dmul cxxchg ax,bxadd bx,axjmp newchar3 rotate3: call crlf ;控制光标,并显示信息lea dx,mesg10mov ah,9int 21h ;输出2进制数print3: rol bx,1 ;循环左移一位mov al,bland al,1hadd al,30hmov dl,almov ah,2int 21hdec sijnz print3mov ah,1int 21hretCHANGE10TO2 ENDP;******************10,16进制子程序******************************* ;本部分说明类似2,16进制子程序,不重复说明 TENAND16 PROC NEARcall crlflea dx,mesg5mov ah,09hint 21hCALL INPUT repeat3:mov ah,1int 21hcmp al,31hJE D1cmp al,32hJE D2- 25 -汇编语言课程设计报告:代码与数制之间的转换lea dx,ST8mov ah,0int 16hjmp repeat3 ;10转16D1: CALL CHANGE10TO16RET;16转10D2: CALL CHANGE16TO10RETTENAND16 ENDP;******************10进制转16进制子程序*******************************CHANGE10TO16 PROC NEARlea dx,mesg8mov ah,9int 21hmov bx,0mov si,0 newchar6: mov ah,1 ;输入十进制数int 21hcmp al,'*' ;用'*'来判断输入数据是否结束je next6sub al,30hjl next6cmp al,9d ;和10进制9比较jg next8cbwxchg ax,bx ; 将AX与BX内容交换mov cx,10dmul cxxchg ax,bxadd bx,axjmp newchar6 next6: mov si,1next7: call crlflea dx,mesg12mov ah,9int 21hmov ch,4rotate6: mov cl,4rol bx,clmov al,bland al,0fhadd al,30h- 26 -汇编语言课程设计报告:代码与数制之间的转换cmp al,3ahjl print6add al,7h print6: mov dl,al ;输入十六进制数mov ah,2int 21hdec chjnz rotate6mov ah,1int 21hnext8: retCHANGE10TO16 ENDP;******************16进制转10进制子程序*******************************CHANGE16TO10 PROC NEARlea dx,mesg9mov ah,9int 21hmov bx,0 newchar5: mov ah,1int 21hsub al,30hjl next5cmp al,10djl add_to5sub al,27hcmp al,0ahjl next5cmp al,10hjge next5 add_to5:mov cl,4shl bx,cl ;将BX左移四位,低位移到高位mov ah,0add bx,axjmp newchar5 next5: call crlflea dx,mesg11mov ah,9int 21hmov cx,10000d ;显示万位call dec_div5mov cx,1000d ;显示千位call dec_div5- 27 -汇编语言课程设计报告:代码与数制之间的转换mov cx,100d ;显示百位call dec_div5mov cx,10d ;显示十位call dec_div5mov cx,1d;显示个位call dec_div5mov ah,1int 21hretCHANGE16TO10 ENDP dec_div5 proc near ;除法子程序mov ax,bxmov dx,0div cxmov bx,dxmov dl,aladd dl,30hmov ah,2int 21hretdec_div5 endp;******************换行子程序*******************************crlf proc nearmov dl,13mov ah,2int 21hmov dl,10mov ah,2int 21hretcrlf endpCODE ENDSEND BEGIN- 28 -汇编语言课程设计报告:代码与数制之间的转换四、课程设计体会经过一周的课程设计~无论从学习上还是自身角度~我都自认得到了很大的提高。

相关文档
最新文档