汇编课程设计论文
课程设计论文优秀4篇
课程设计论文优秀4篇c语言课程设计优秀论文篇一摘要:一般在较大的程序设计当中,如果把汇编语言与高级语言程序结合起来使用,把两种语言的优点都发挥出来,充分利用两种的优势,进行混合编程,则可以很多的难以解决的难题。
在程序设计的实践当中,C语言和汇编语言可以相互调用,C语言可以调用汇编语言,汇编语言可以调用C语言,也可以把其中一种语言程序嵌入到另一种程序语言当中。
本文就是探讨把C语言与汇编语言两种语言进行混合编程,实现两者的最佳组合,从而解决一些实践难题。
关键词:汇编语言;C语言;混合编程汇编语言的优势就是速度快,占用存储空间不大,而且可以随时控制硬件,这些优点是其它的程序语言无法取代的。
汇编语言也有不足之处,就是在高级程序的编写与调试时存在着较大的困难,特别是在处理一些数据或者一些混合运算时显得更加困难。
C语言,它的优势就是在于功能全面,表达形式多样且灵活,开发使用效率很高,具有其它高级语言无法具有的优势。
通常在软件开发过程中,大部分程序采用高级语言编写,以提高程序的开发效率;但在要求执行速度快、占用空间少或要求直接控制硬件的场合,则利用汇编语言编写,以提高程序的运行效率。
1.汇编语言和C语言混合编程的方法C语言和汇编语言混合编程的具体方法有以下几种。
2.1参数传递汇编语言程序和C语言程序在调用时会涉及到参数传递,一般采用堆栈进行传递。
在汇编语言中将BP作为基址寄存器,调用程序先将来自于C语言程序中的参数依次压入堆栈中,然后当需要使用这些参数时,再用BP加上不同的偏移量依次对堆栈中的数据进行存取操作。
2.2调用关系的确定对于将要涉及到调用的过程或函数需要事先说明和建立调用与被调用关系。
被调用的过程或函数应预先说明为外部类型,以便被外部模块引用,而调用程序也需要在程序中说明将要引用的外部模块的名称。
在说明调用关系时还应根据不同的存储模式确定相应的汇编语言格式。
C程序小模式对应汇编程序的近类型过程,而C程序大模式则对应汇编程序的远类型过程。
(汇编代码)微机原理课程设计之TANK坦克大战
测试游戏功能是否正常
检查游戏性能是否达标
调试游戏中的错误和问题
优化游戏性能和体验
游戏测试:成功运 行,无严重错误
调试过程:定位并 修复了若干问题
测试结果:性能稳 定,符合预期
结论:游戏测试和 调试工作顺利完成
游戏优化和改进
优化算法:采用更高效的算法,减 少计算量,提高游戏运行速度。
完 成 TA N K 坦 克 大 战 游 戏 的 程 序设计和实现
学会使用汇编语言进行编程
掌握游戏的基本规则和玩法
游戏规则和玩法
游戏目标:击败所有敌人,保护基地 角色设定:玩家扮演坦克,有生命值和弹药量限制 武器装备:多种武器可供选择,不同武器有不同的攻击力和射程 游戏地图:多个关卡,每个关卡有不同的地形和敌人配置
添加标题
游戏状态管理:游戏状态包括开始、进行中和结束三个状态。在开 始状态下,玩家可以开始游戏;在进行中状态下,玩家可以操作坦 克移动和射击;在结束状态下,游戏结束并给出评价。
添加标题
游戏角色行为:游戏角色包括玩家坦克和敌方坦克。玩家坦克的行 为包括移动和射击;敌方坦克的行为包括移动和攻击。
游戏界面布局:简洁明了,易于操作 角色设计:形象生动,符合游戏主题 场景设计:丰富多样,增加游戏趣味性 特效设计:绚丽多彩,提升游戏体验感
添加标题
添加标题
添加标题
添加标题
敌方角色:游戏中的敌方坦克种类多 样,包括轻型坦克、重型坦克、自行 火炮等,具有不同的攻击和防御能力, 对玩家构成威胁。
游戏辅助角色:游戏中的一些辅助角 色,如地图、弹药补给点等,为玩家 提供地图信息和弹药补给服务,帮助 玩家更好地进行游戏。
游戏程序设计和实 现
游戏整体架构:包 括游戏的主要功能 模块和各模块之间 的关系
汇编程序设计课程设计报告
汇编程序设计课程设计报告题目:实时钟显示与定时控制设计班级:计算机科学与技术姓名:韩云飞指导老师:段新娥日期:2010.12《汇编语言程序设计》课程设计前言随着计算机的不断更新发展,计算机在各个领域的应用越来越多,更多的软件开发人员和相关技术人员在程序设计的过程中应用汇编程序或编制汇编语言。
而汇编语言做为计算机专业大学生必修之课,每个做为本专业的学生对汇编的理解和学习就显的尤为重要。
汇编语言是计算机能够提供给用户使用的最快而又最好最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
因而,对程序的空间和时间要求很高的场合,汇编语言的应用就显的必不可少了,一些直接控制硬件的应用场合,则更是非用汇编语言不可了。
汇编语言是理解整个计算机系统的最佳起点和最有效途径,人们经常认为汇编语言的应用范围很小,而忽视它的重要性。
其实汇编语言对每一个希望学习计算机科学与技术的人来说都是非常重要的,是不能不学习的语言。
所有可编程计算机都向人们提供机器指令,通过机器指令人们能够使用机器的逻辑功能。
所有程序,不论用何种语言编制,都必须转成机器指令,运用机器的逻辑功能,其功能才能得以实现。
机器的逻辑功能,软件系统功能构筑其上,硬件系统功能运行于下。
汇编语言直接描述机器指令,比机器指令容易记忆和理解。
通过学习和使用汇编语言,能够感知、体会、理解机器的逻辑功能,向上为理解各种软件系统的原理,打下技术理论基础;向下为掌握硬件系统的原理,打下实践应用基础。
学习汇编语言,向上可以理解软件,向下能够感知硬件,是我们理解整个计算机系统的最佳起点。
这次课程设计是在教学及实验基础上,对课程所学理论知识的深化和提高。
通过具体的问题分析、设计、调试、运行程序,在实际问题中锻炼提高自己,增加对本门课程内容的理解,锻炼我们的动手能力。
目录一.课程设计目的 (1)二.课程设计要求 (1)三.课程设计内容 (1)四.设计步骤 (2)五.设计程序流程图 (3)六.心得体会 (7)七.参考文献 (8)八.程序源代码 (9)一.课程设计目的“汇编语言”课程设计是在教学及实验基础上,对课程所学理论知识的深化和提高。
王爽汇编语言课程设计
王爽汇编语言课程设计一、课程目标知识目标:1. 理解汇编语言的基本概念,掌握汇编语言的语法和指令系统;2. 学会使用汇编语言进行程序设计和调试;3. 了解计算机硬件与汇编语言的关联,理解汇编语言在计算机运行中的作用。
技能目标:1. 能够运用汇编语言编写简单的程序,实现基本的输入输出、算术运算等功能;2. 学会使用汇编语言进行条件判断和循环控制;3. 掌握汇编语言与高级语言的混合编程方法。
情感态度价值观目标:1. 培养学生对计算机底层原理和汇编语言的兴趣,激发学习热情;2. 培养学生的编程思维和解决问题的能力,提高自信心;3. 强调汇编语言在计算机科学中的重要性,培养学生的专业素养。
课程性质分析:本课程为计算机科学与技术专业的基础课程,旨在帮助学生深入理解计算机硬件与软件的关联,掌握汇编语言的编程技能。
学生特点分析:学生处于大学本科阶段,具备一定的计算机基础知识和编程能力,对汇编语言有一定的好奇心,但可能对底层原理感到困惑。
教学要求:1. 结合实际案例,深入浅出地讲解汇编语言知识;2. 注重实践操作,培养学生的动手能力;3. 突出汇编语言在实际应用中的作用,提高学生的应用意识。
二、教学内容1. 汇编语言基础知识:介绍汇编语言的概念、发展历程、特点及应用场景,讲解汇编语言的语法和指令系统(对应教材第1章)。
- 数据类型与寄存器- 指令格式与寻址方式2. 汇编语言程序设计:讲解汇编语言的编程方法,通过案例分析和实践操作,使学生掌握汇编程序的设计与调试(对应教材第2-4章)。
- 程序结构- 基本指令的使用- 程序流程控制3. 汇编语言与硬件的关系:介绍汇编语言如何与计算机硬件交互,理解汇编语言在计算机运行中的作用(对应教材第5章)。
- 计算机硬件原理- 汇编语言与CPU的关联4. 混合编程:讲解汇编语言与高级语言的混合编程方法,提高学生的编程技能和应用能力(对应教材第6章)。
- 混合编程概念与原理- 混合编程实例分析5. 实践环节:设置多个实践任务,让学生动手编写汇编程序,巩固所学知识,提高实际操作能力(对应教材实践部分)。
基于52单片机电子时钟的设计论文(纯汇编语言编写)
编号单片机课程设计(2013 级)题目:基于52单片机电子时钟的设计学院:物理与机电工程学院专业:电子信息科学与技术作者姓名:陈✘✘党✘✘杜✘✘指导教师:张✘✘职称:教授完成日期:2016 年7 月 2 日二〇一六年七月基于52单片机电子时钟的设计摘要本次设计的多功能时钟系统采用STC89C52单片机为核心器件,利用其定时器/计数器定时和记数的原理,结合液晶显示电路、时钟芯片DS1302电路、电源电路以及按键电路来设计计时器。
将软硬件有机地结合起来,使得系统能够实现液晶显示,显示有年、月、日、时、分、秒以及星期,还可以设置闹钟和整点报时。
其中软件系统采用单片机汇编语言编写程序,包括显示程序、闹钟程序、中断、延时程序,按键消抖程序等,并在keil中调试运行,硬件系统利用PROTEUS 强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
关键词:STC89C52芯片;时钟芯片DS1302;单片机汇编语言;液晶显示电路1 设计任务及要求分析1.1 设计任务:基于单片机的电子时钟设计1.2 要求:1.2.1 用LCD液晶作为显示设备1.2.2 可以分别设定小时、分钟和秒,复位后时间为 00 00 001.2.3 能实现日期的设置年、月、日1.3 扩展要求:如闹钟功能、显示星期、整点音乐报时等2 系统方案2.1 系统整体方案的论证电路原理设计是基于小系统板包括电源电路、复位电路、按键电路、DS1302时钟电路、液晶显示驱动电路、输出控制电路。
电源部分是用电池来提供的3v-5v,晶体振荡器采用的是12MHz的石英晶体振荡器。
整个系统用单片机为中央控制器,由单片机执行采集时钟芯片的时间信号并通过显示模块来输出信号及相关的控制功能。
时钟芯片产生时钟信号,利用单片机的I/O口传给单片机;并通过I/O口实现LCD的显示。
系统设有4个独立式按键可以对时间年、月、日和星期进行调整,还可以设置闹钟。
具体如图2.1所示:图2.1 系统整体框图3硬件设计与实现3.1单片机最小系统STC89C52是一款非常适合单片机初学者学习的单片机,它完全兼容传统的8051,8031的指令系统,他的运行速度要比8051快最高支持达33MHz的晶体震荡器,在此系统中使用12MHz的晶振。
课程设计报告--汇编程序设计(进制转换)
课程设计报告--汇编程序设计(进制转换)汇编语言课程设计报告:代码与数制之间的转换内容提要:本课程设计的主要内容是代码与数制之间的转换~程序的主要功能如下: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 代码与数制之间的转换程序的意义数制转换是计算机科学技术中最为基础的运算,在日常生活中,人们习惯性地使用十进制数进行计算。
王爽《汇编语言》课程设计一
课程设计(一)一、有除法溢出的dtoc子程序为:dtoc: push cxs:mov cx,10call divdw ;进行16位除法,被除数低16位存放在ax中,高16位存放在dx中,除数为10,存放在cx中,并调用不会产生溢出的除法运算的子程序divdwadd cx,30h ;将余数加上30h,就得到十进制数码字符对应的ASCII 码mov [si],cx ;将十进制数码字符对应的ASCII码存放在数据段中inc sipush ax ;保存此时的axadd ax,dx ;商是由ax和dx中的数据组合而成,为了判断商是否为0 mov cx,ax ;将商的高16位和低16位加起来,送给cxpop ax ;恢复axjcxz ok ;若商为0,则结束子程序jmp short sok: mov byte ptr [si],0 ;在字符串的结尾添个0call back ;调用把字符串反过来的子程序backpop cxretdivdw:mov bx,axmov ax,dxmov dx,0div cxpush axmov ax,bxdiv cxmov cx,dxpop dxretback:push dipush cxmov cx,simov di,0s1:mov al,[di]mov ah,0push axinc diloop s1mov di,0mov cx,sis2:pop axmov [di],alinc diloop s2pop cx二、课程设计首先,定义数据的时候,定义了一个栈段,在data段的开始定义了一个有10字节的空间,用来把数据转换成十进制形式的字符串,后面的总收入、雇员数、人均收入均为dword数据,方便后面统一来进行循环处理。
其次,刚开始的时候,用一个循环来计算人均收入,并把得到的数据放在data段中(在data段中定义了21个为0的dword数据用来存放人均收入)。
再次,在总体思路上,就是先定义一个32*21个字节的table段,把分别用子程序dtoc 把每个用二进制存放的数据转换成对应的十进制字符串,把字符串存放到table段中相应的位置,通过四个循环能把所有数据对应的字符串存放到table段中,这时的table 段中的存储模式与要求显示在屏幕上的模式一样,所以可以用一个双重循环将table 中的内容一个字节一个字节地复制到显示缓冲区的偶地址上,奇地址存放字符的颜色属性白色07h。
汇编语言的课程设计
汇编语言的课程设计一、教学目标本课程的教学目标是使学生掌握汇编语言的基本概念、语法和程序设计方法,培养学生运用汇编语言进行程序设计的能力。
具体目标如下:1.知识目标:(1)了解汇编语言的基本概念和特点;(2)掌握汇编语言的语法规则,包括数据类型、指令系统、程序结构等;(3)熟悉汇编语言的编程技巧,如寄存器分配、内存管理等;(4)了解汇编语言与机器语言的关系及汇编过程。
2.技能目标:(1)能够使用汇编语言编写简单的程序,如计算器、排序等;(2)能够阅读并理解汇编语言程序;(3)能够对汇编语言程序进行调试和优化。
3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和热情;(2)培养学生勇于探索、善于合作的科学精神;(3)培养学生严谨治学、追求卓越的学习态度。
二、教学内容本课程的教学内容主要包括以下几个部分:1.汇编语言的基本概念和特点;2.汇编语言的语法规则,包括数据类型、指令系统、程序结构等;3.汇编语言的编程技巧,如寄存器分配、内存管理等;4.汇编语言与机器语言的关系及汇编过程;5.汇编语言程序的设计与调试。
教学大纲安排如下:第1-2课时:汇编语言的基本概念和特点;第3-4课时:汇编语言的语法规则;第5-6课时:汇编语言的编程技巧;第7-8课时:汇编语言与机器语言的关系及汇编过程;第9-10课时:汇编语言程序的设计与调试。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解汇编语言的基本概念、语法规则和编程技巧;2.案例分析法:分析典型的汇编语言程序,使学生更好地理解编程思想;3.实验法:让学生动手编写和调试汇编语言程序,提高实际操作能力;4.讨论法:分组讨论问题,培养学生的合作精神和沟通能力。
四、教学资源本课程所需教学资源包括:1.教材:《汇编语言程序设计》;2.参考书:《汇编语言教程》、《汇编语言实践》;3.多媒体资料:课件、教学视频等;4.实验设备:计算机、汇编语言编程环境。
汇编语言课程设计(论文)
课程设计说明书题目: 代码转换程序院系:计算机科学与工程学院专业班级:学号:学生姓名:指导教师:2010 年12 月26 日安徽理工大学课程设计(论文)任务书计算机科学与工程院系计算机硬件教研室学号学生姓名专业(班级)设计题目代码转换程序设计技术参数1.熟悉汇编指令、宏汇编语言的编程方法2. BIOS中断调用、系统功能中断调用方法3.磁盘文件、及文件内容操作设计要求1.程序分七个模块编写,不同模块实现不同功能1为主模块,调用模块5和模块7,模块5又调用模块2、3、4和模块6四个模块,其中:模块2实现小写字母向大写字母的转换,模块3实现大写字母向小写字母的转换,模块4实现二进制数向十进制数的转换,模块6实现十六进制数向二进制数的转换,模块7实现十进制数向十六进制数的转换。
按“q”键退出2.运行程序后,屏幕上要有选择哪种转换的提示菜单3.显示结果,十进制数后要加D,十六进制数后要加H表示;二进制数要以二进制形式输出,后面要加B工作量1.完成所选题目的软件设计2.课程设计说明书1500字(不包括程序源代码)左右。
工作计划1. 首先认真研究老师所给的题目,了解题目要求做什么。
2. 查阅资料,解决难题。
3. 编写源程序并调试之。
4. 写课程设计说明书参考资料[1] 李敬兆.汇编语言程序设计.中国科学技术大学出版社,2008[2] 李敬兆.汇编语言程序设计实验教程.中国科学技术大学出版社,2008[3] 龙尚福.微型计算机汇编语言程序设计.电子科技大学出版社[4] 张海藩. 软件工程.北京:人民邮电出版社,2009指导教师签字教研室主任签字2010年 12月26日安徽理工大学课程设计(论文)成绩指导教师评语:成绩:指导教师:年月日摘要本课程设计是代码转换程序,能够根据菜单选择具体实现小写字母转大写字母,大写字母转小写字母,二进制数转换成十进制数,十六进制数转换成二进制数,十进制数转换成十六进制数。
这些功能的实现,是在基本的汇编指令及高级汇编的基础上,通过各种BIOS 调用和数据段、栈段、代码段、各模块之间的调用等的熟练运用,从而实现了此程序的功能。
汇编课程设计报告正文
目录第1章需求分析 (1)1.1 设计题目 (1)1.2 设计目的 (1)1.3 程序运行环境及开发工具 (1)1.3.1 运行环境 (1)1.3.2 开发工具 (1)1.4 课程设计任务及要求 (1)1.4.1 设计任务 (1)1.4.2 设计要求 (1)第2章概要设计 (2)2.1 设计思想和原理 (2)2.1.1 设计思想 (2)2.1.2 设计原理 (2)2.2 系统流程图 (2)第3章详细设计 (5)3.1 数据段的设计 (5)3.1.1 数据段定义(DATA SEGMENT) (5)3.2 主程序的设计与实现 (5)3.3 子程序的设计与实现 (5)3.3.1 键盘输入成绩模块 (5)3.3.2 冒泡排序模块 (5)3.3.3,数据输出模块 (6)第4章系统调试与操作说明 (7)第5章设计中存在的问题及解决方法 (9)第6章总结与体会 (10)参考文献: (10)附录:源程序 (12)第1章需求分析1.1 设计题目成绩分段统计(2)1.2 设计目的在此课程设计中,通过对成绩统计分段程序的设计,来实现键盘输入,排序,输出功能,熟悉常用系统功能调用和常用算法的实现。
如01H功能调用,02H 功能调用以及BIOS功能调用的09H调用;掌握常用排序算法的汇编实现,如本设计中的冒泡排序算法实现降序排列。
汇编语言程序设计课程设计是计算机教学实践基础上的一次重要的大型实验,也是对汇编语言程序设计课程所学理论知识的深化和提高。
因此,要求学生能综合应用所学知识,设计与调试出具有实际功能的应用程序,并且在实验的基本技能方面上进行一次全面的训练。
培养学生综合运用所学知识独立完成汇编程序课题的能力,使学生能够比较全面巩固和应用课堂中所学的基本理论和程序设计方法,能够比较熟练完成汇编程序的设计和调试。
提高学生对工作认真负责,一丝不苟,和在遇到难题时的协同合作的素质,培养学生从资料文献,科学实验中获得知识的能力,初步培养工程意识和创新能力,培养学生勇于探索,严谨推理,实事求是的素质。
中南大学汇编课程设计
中南大学课程设计报告课题:计算机原理与汇编课程设计题目:输出九九乘法表目录摘要九九乘法表输出是应用masm.exe 、link.exe、debug.exe等汇编语言软件进行编译链接及执行目的程序的方法来实现。
并且认识和利用DOS系统下的21h 函数的02功能号来进行单个字符的输出 程序设计的过程中用到循环和子函数的思想。
模块化的程序设计思想有利于源代码代码的编写、错误的查找和修改,同时可以分步来调试程序、减少工作量,乘法表的输出没有乘数和被乘数,只有乘积的结果输出。
关键词汇编语言程序设计、微机原理、九九乘法表、dos中断系统。
一、设计要求本实验要求将九九乘法口诀表输出在屏幕上。
二、设计思想九九乘法表输出程序主要用到一个嵌套循环和两个过程,外层循环用bl保存并记录,外循环每执行一次,bl的值加一。
内循环用bh保存并记录,如果bh 的值小于bl的值则执行内循环,内循环中每盒bl比较一次,成立则值加一不成立则转到换行,子函数执行,同时也比较外循环是否继续满足条件执行,即比较bl的值是否小于10,小于就执行外循环 否则就结束程序。
设计dis子函数,把内存中的16进制数转换成10进制,设计的disp子函数是把十进制转化成ASCLL码并输出乘积,这样得到的显示的结果就是我们看到的10进制数。
子函数output_ctl的功能是换行,当内循环变量bh的值大于外循环值bl时调用这个函数,使得输出的结果有序,输出的结果更容易体现嵌套循环。
三、实验步骤(一)、创建文本文件,编写源代码,把文件保存在有masm.exe link.exe等汇编软件的文件夹下,文件的后缀名改为.asm,比如 九九乘法表输出.asm 。
(二、开启电脑,在“开始”—“运行”输入“cmd”命令进入DOS的字符操作界面,编译链接程序代码,查看源程序是否有错误,有错误则加以修改。
(三)、程序编译链接没有错误的情况下执行目标程序,查看结果的输出情况,并用debug命令查看内存的变化。
汇编语言》课程设计报告--判断闰年程序
《汇编语言》课程设计报告题目:判断闰年程序院(系):计算机与信息工程学院班级:姓名:学号:指导教师:1设计主要任务通过完成闰年判别程序设计掌握字符输入及、调试过程。
1.1设计任务与目标软件所实现的任务与目标主要包括:(1)由键盘输入任意年份,判断输入年份是否在限制区间2000-9999内;(2)若程序判别输入年份为闰年,显示☺,不是闰年显示△;(3)根据要求确定解决问题的编程方法;(4)画出程序框图、设计源程序;(5)在计算机上汇编、链接所设计的程序;(6)按照要求调试程序,记录程序运行结果;(7)写出设计总结报告。
2 设计方案判断某年是否为闰年具体算法为如果该年份的数值正整数若能被400整除,或者不能被100整除,却能被4整除,则该数值代表的年份为闰年。
判断结果的显示符号可用ASCII值来实现。
流程图如下:4 子程序设计4.1 输入判断子程序该模块是对输入的年份的范围的判断,若是输入不在2000-9999之内,则显示错误Error,若是输入在范围内,则进行下面的操作。
4.2数字转换子程序将数字字符串转换成数字,以便进行下面的程序操作。
4.3 判断闰年子程序判断输入的年份是否为闰年,若是则输出☺,若不是则输出△,然后退出。
5 调试程序调试主要使用宏汇编程序MASM.EXE、连接程序LINK.EXE、系统操作界面当输出年份时显示结果当输入为闰年时显示笑脸并返回操作界面:6 设计总结通过这几天的汇编课程设计,基本掌握闰年判别程序设计,首先是根据题目要求确定思路,然后根据思路按照题目要求编写相应汇编程序,最后用软件调试结果是否正确。
在此次课程设计中,虽然课本上也讲过年份的判别,但是比较分散,所以刚开始设计时思路不是太清,通过查阅相关资料,清楚了程序设计的基本框架,进而能编写出相应程序,设计中又一个难题是最后屏幕显示的问题,通过查阅相应ASCII值,使最后显示出结果。
一周的课程设计让我收获颇多,虽然调试中遇到不少问题,但通过调试明白程序中存在的问题并改正。
汇编语言课程设计论文
目录一.概述 (3)二.总体方案设计 (6)三.详细设计 (9)四.程序的调试与运行结果说明 (13)五.课程设计总结 (14)附录 (15)参考文献 (24)一概述汇编语言是计算机能够提供给用户使用的最快而有效的语言,也是能够利用计算机所有特性并能直接控制硬件的唯一语言。
借助于汇编程序,计算机本身可以自动地把汇编源程序翻译成用机器语言表示的目的程序,从而实现了程序设计工作的部分自动化。
1课程设计的目的1.理解和掌握该课程中的有关基本概念,程序设计思想和方法。
2.培养综合运用所学知识独立完成课题的能力。
3.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
4.掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
5.掌握利用单片机接口技术解决问题的基本方法2课程设计的要求1、需要的基本知识与技能。
具备汇编语言设计、编写、调试和运行程序的方法和技巧。
在PC机上运行汇编程序需要经过以下几个阶段:编辑源程序。
利用文本编辑工具编辑源程序,生成一个汇编语言的纯文本文件。
文件的扩展名为.ASM汇编源程序。
用汇编器汇编源程序生成目标代码文件,目标代码文件的扩展名是.OBJ,汇编器还可以生成列表文件和交叉参考文件。
汇编器相当于高级语言中的编译器。
汇编语言按照汇编语言的语法检查源程序,如果源程序语法有错误,汇编器就不生成目标代码文件,这时,必须重新编辑源程序,修改语法错误。
当发现源程序有的行含有不确定因素,汇编器会给出警告信,但按却省处理方法生成目标代码文件。
此时,可以重新编辑源程序,消去不确定因素。
连接目标程序。
利用连接器连接目标代码程序和库函数代码生成可执行程序文件。
一般单个模块的连接可以顺利地生成可执行程序文件。
当多个模块连接,或者库函数连接时,如果在目标代码中找不到所需的连接信息,连接器就会发生错误提示信息,而不是生成可执行文件。
汇编语言王爽第四版课程设计一
汇编语言王爽第四版课程设计一
汇编语言王爽第四版课程设计一
这是一个通用的课程设计,可用于任何基于王爽第四版的汇编语言课程。
本设计的目标是让学生掌握汇编语言的基本概念和指令集,并通过编写实际的汇编程序来加深对汇编语言的理解。
课程设计一:一个简单的汇编程序
1. 教学目标
- 让学生了解汇编语言的基本概念和指令集
- 让学生学会编写简单的汇编程序
- 让学生通过编写汇编程序来加深对汇编语言的理解
2. 教学内容
- 汇编语言的基本概念
- 汇编指令集
- 汇编程序的编写方法
- 程序的控制流
- 变量和数据的定义和使用
- 栈的使用
- 汇编程序的调试和测试
3. 教学资源
- 汇编语言教材或教程
- 汇编指令集手册或在线资源
- 计算机体系结构和编程知识
- IDE 或编辑器,如 Visual Studio Code 或 Sublime Text - 调试工具,如 GDB 或 LLDB
4. 教学步骤
- 介绍汇编语言的基本概念和指令集
- 讲解汇编程序的编写方法
- 让学生编写简单的汇编程序并进行调试和测试
- 让学生展示他们的汇编程序,进行交流和反馈
- 让学生继续深入学习,掌握更多的汇编语言知识和技能。
汇编课程设计.DOC
一、程序系统总体的功能模块功能说明1.首先在数据段中定义了7个字串符分别为LFCN、MSG、MSG1、MSG2、MSG3、MSG4、MSG5,其中LFCN用于换行,MSG用报错。
MSG1是输入十进制数的提示信息。
MSG2、MSG3、MSG4、MSG5分别是进入加法、减法、乘法、除法运算环境的提示信息。
2.在代码段中,我首先用DOS中的1号命,该命令的作用是用户可以直接从键盘一个字串,如果是‘+’进入加法运算,如果是‘-’进入减法运算,如果是‘*’进入乘法运算,如果是‘/’进入除尘运算,如果以上四个都不是系统会调用字符串MSG用报错。
3.当运算进入加法、减法、乘法、除法环境时,首先会调用子程序AD1,AD1中我用2个DOS的1号命令,其中用户通过第1个DOS的1号命输进的一个数,把它用一个循环将其扩大十倍,然后再与用户通过第2个DOS的1号命令输进的一个数向加,结果变成了一个两位数。
我在每个DOS的1号命令之后将AL值减去30H,该作用是将字符变成数,然后再调用字程序HYT,字程序HYT的作用是判断用户输进的字符减去30H后,小于0和大于9数,系统将调用字符串MSG用报错。
4.根据用户进入什么样运算环境,然后用DOS的2号命令输出相什么样的运算符号。
然后,程序将再调子程序AD2,子程序AD2功能包括子程序AD1中的功能,子程序AD2在子程序AD1的基础上,多用了1个DOS的2号命令,该命命用于输出用个字串‘=’。
5.然后,将第一个两位数与第二个两位数相运算6.最后系统调用了子程序EFG,该子程序的作用是,将二个两位数经运算的结果在电脑显视器输出,其中除法运算中的余数,放在DI寄在器中。
二、程序系统总体的功能模块功能说明三、子程序的流程图四、程序界面图1、首先单击“开始”然后单击“运行”输入CMD +回车2、path c:\windows\system32;c:\windows;c:\masm5 +回车edit a.asm3、输入程序代码,然后单击”file”中”Exit”4、Masm a +回车5、Link a +回车6、 A +回车,进入运算界面通过程序界面图,可以清淅的看清在机上操作该程序的步聚,以及操作不当时,系统会及时报错。
汇编课程设计
汇编课程设计一、教学目标本课程的教学目标是使学生掌握XX学科的基本概念、原理和方法,能够运用所学知识解决实际问题。
具体包括:1.知识目标:学生能够准确地掌握XX学科的基本概念、原理和方法,了解学科的发展趋势和应用领域。
2.技能目标:学生能够运用所学知识解决实际问题,具备一定的实践操作能力。
3.情感态度价值观目标:学生对XX学科产生浓厚的兴趣,树立科学的世界观和价值观。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.XX学科的基本概念:介绍学科的基本定义、特点和意义,使学生对学科有一个整体的认识。
2.XX学科的基本原理:讲解学科的核心原理,并通过实例进行分析,帮助学生理解并掌握。
3.XX学科的方法和技术:介绍学科常用的方法和技术,并引导学生运用这些方法和技术解决实际问题。
4.学科发展趋势和应用领域:介绍学科的最新发展动态和应用领域,激发学生的学习兴趣和应用能力。
三、教学方法为了实现课程目标,本课程将采用多种教学方法,包括:1.讲授法:教师通过讲解、阐述,引导学生理解和掌握学科知识。
2.讨论法:学生分组讨论,交流心得,培养学生的思考能力和团队协作精神。
3.案例分析法:通过分析实际案例,使学生学会运用所学知识解决实际问题。
4.实验法:学生进行实验,培养学生的实践操作能力和科学探究精神。
四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习材料。
2.参考书:推荐学生阅读相关参考书,丰富学生的知识储备。
3.多媒体资料:制作多媒体课件,生动形象地展示学科知识,提高学生的学习兴趣。
4.实验设备:准备实验所需的设备器材,确保实验教学的顺利进行。
五、教学评估本课程的评估方式包括平时表现、作业和考试等。
具体评估标准如下:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的30%。
2.作业:布置适量作业,检查学生对知识点的理解和应用能力,占总评的30%。
汇编语言课程设计论文
学号:200840410118课程设计题目显示系统日期时间程序设计教学院计算机学院专业计算机科学与技术班级2008级(1)班姓名张超凡指导教师姚莉、杨斐2010年12月28日汇编语言课程设计任务书2009~2010学年第一学期学生姓名:张超凡专业班级:计算机科学与技术(1)班指导教师:姚莉、杨斐工作部门:计算机学院一、设计题目:显示系统日期时间程序设计二、设计目的《显示日期时间程序设计》课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。
因此,要求学生能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。
1.使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。
2.培养学生综合运用所学知识独立完成汇编程序课题的能力。
3.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
4.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
5.培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
三、课程设计内容要求完成一个显示系统当前日期和时间的程序,即通过按下键盘上某个按键就可以显示系统的日期和时间或者终止程序。
(比如:在出现的提示信息后输入大写字母“D”,显示系统当前日期;输入大写字母“T”,显示系统当前时间;输入大写字母“Q”,结束程序。
)此程序涉及到对DOS和BIOS的常用功能的调用,要求学生掌握使用汇编语言对I/O中断的使用。
四、进度安排2010年12月13日~2010年12月14日,指导教师进行与课题相关的基础知识点讲解;2010年12月15日~2010年12月17日,小组进行分组并选定课程设计题目,教师指导各组根据选定题目准备资料;2010年12月18日~2010年12月19日,设计小组进行总体方案设计和任务分工;2010年12月20日~2010年12月22日,每人完成自己承担的程序模块并通过独立编译;2010年12月23日~2010年12月26日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行以及撰写课程设计报告;2010年12月27日~2010年12月28日,验收、修订课程设计报告、答辩及总结。
汇编语言课程设计报告——实现加减乘除四则运算的计算器
汇编语言课程设计报告( 2011 -- 2012 年度第 2 学期)实现加减乘除四则运算的计算器专业 计算机科学与技术 学生姓名班级学号指导教师完成日期目录目录错误!未定义书签。
1 概述错误!未定义书签。
设计目的错误!未定义书签。
设计内容错误!未定义书签。
2 系统需求分析错误!未定义书签。
系统目标错误!未定义书签。
主体功能错误!未定义书签。
开发环境错误!未定义书签。
3 系统概要设计错误!未定义书签。
系统的功能模块划分错误!未定义书签。
系统流程图错误!未定义书签。
4系统详细设计错误!未定义书签。
5 测试错误!未定义书签。
测试方案错误!未定义书签。
测试结果错误!未定义书签。
6 小结错误!未定义书签。
参考文献错误!未定义书签。
附录错误!未定义书签。
附录源程序清单错误!未定义书签。
实现加减乘除四则运算的计算器1 概述设计目的本课程设计是在学完教学大纲规定的全部内容、完成所有实践环节的基础上,旨在深化学生学习的汇编语言课程基本知识,进一步掌握汇编语言程序设计方法,提高分析问题、解决问题的综合应用能力。
设计内容能实现加、减、乘、除的计算;该程序接受的是16进制数;执行时,需要在文件名后直接跟上计算表达式,如在命令提示符下执行结果如下:c:\tasm>js 3+252 系统需求分析系统目标本次汇编语言课程设计的最终目的是要实现一个简单加减乘除四则运算的计算器,要求编写一个程序,每运行一次可执行程序,可以实现数的加减乘除四则运算。
比如,十进制数的加减乘除四则运算。
我们曾经学习过两个具体数字进行加减法运算,但是对于简单计算器用汇编语言实现难点在于这两个要做运算的数是未知的,是由自己调用中断输入到屏幕上并要用程序存储起来的数,然后才能对这两个数进行运算,而且做的是加法运算、减法运算乘法运算还是除法运算也未可知,为此我们还要判断用户所输入的运算是四则运算中的哪一个运算。
此外,运算过程中的进位或是借位,选择用什么样的方式进行输出,如何实现清屏等也是要解决的问题。
汇编课程设计
课程设计说明书题目: 判断某一年是否为闰年院系:专业班级:学号:学生姓名:指导教师:2010 年 12 月 30 日安徽理工大学课程设计(论文)任务书年月日课程设计(论文)成绩评定表摘要汇编程序课程设计的题目是判断某一年是否为闰年。
要求有运行可执行程序后,在屏幕出现提示信息中输入具体的年份,判断该年是否是闰年,最后在屏幕上输出:XXXX年是否为闰年的提示信息。
编程要点是屏幕上要有提示输入年份,输入年份后在屏幕上输出:XXXX年是否为闰年的提示信息.然后提示是否要继续输入,如果不输入则退出。
要注意计算闰年的公式。
利用BIOS 16H中断类型的0号键盘功能调用,将从键盘接收的年份数值型字符串按字节存入缓冲区。
将字符串中的每个字符转换为对应的十进制数值(利用0-9这十个数的ASCII码值比其本身大30H的关系),通过判断某年是否为闰年的表达式,判断输出是否为闰年的信息。
本程序中判断某年是否为闰年的表达式:(((AX)MOD 4 EQ 0)AND((AX)MOD 100 NE 0))OR((AX)MOD 400本表达式的意思是:如果某一年能被4整除但不能被100或者被400整除,则该年为闰年。
在小组几人的共同努力下,我们完成了本次的课程设计,掌握汇编语言的基本设计步骤和思想,以及汇编中子程序调用的实现。
汇编更多的涉及到硬件的知识,汇编程序需要考虑到内存和寄存器的分配,在这次的课程设计中我们都获益匪浅。
关键词:汇编课程设计,判断闰年,字符输入,DOS,ASCII,子程序目录1设计目的 (1)2概要设计 (2)2.1 系统总体分析 (2)2.2 主模块框图及说明 (2)3 详细设计 (2)3.1 主模块及子模块说明 (3)3.2 各模块详细设计 (3)4.程序调试 (9)4.1 运行界面分析 (9)4.2算法的分析 (10)4.3 调试过程及分析 (11)5心得体会 (13)5.1 设计体会 (13)5.2 系统改进 (14)参考文献 (15)1设计目的汇编语言课程设计是对所学课程内容全面、系统的总结、巩固和提高的一项课程实践活动。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
湖南农业大学东方科技学院课程论文(设计)学部:理工学部班级:计算机二班姓名:付常军学号:200941903224 课程论文(设计)题目:字母大小写转换程序设计课程名称:汇编语言与微机原理评阅成绩:评阅意见:成绩评定教师签名:日期:年月日字母大小写转换程序设计学生:付常军(理工学部09级计算机2班,学号200941903224)摘要:本程序主要完成一个字母转化程序,主程序分别具有 2种可选择的子功能,按相应的字符可分别进入相应的子功能并在屏幕上显示结果,按“q”键退出。
2种可选择的子功能分别为:(1)实现小写字母向大写字母的转换;(2)实现大写字母向小写字母的转换。
本程序界面人性化,程序设计中主要应用了条件转移指令判断用户选择的子功能,通过更改字符对应的ASII码达到字母大小写的转换,并且程序还针对用户多种用户错误的输入情况作出处理。
关键字:汇编;程序;大小写转换字母大小写转换在数据处理中应用非常广泛,本程序利用汇编语言针对用户选择的子功能,实现字母大小写的转换。
一、需求分析在办公系统中,我们经常需要将字母进行大小写间的转换,以达到文本处理目的。
字母大小写转换,在生活的文件处理中也随处可见,因此编写一个实现字母大小写转换的程序确实能够处理现实中存在的一些问题。
而且本程序通过汇编语言实现,汇编语言具有许多其他语言不可替代的优点,其目标程序占用内存空间少,运行速度快,在一些硬件配置较差的机器上也能大显身手。
二、概要设计(一)数据类型程序中主要用了byte型变量,以及eax,al,bl寄存器。
将提示信息存储在byte型变量数组中,然后将偏移地址存储在eax寄存器中,以用于输出信息。
用al获得用户输入的字母,用bl暂时存储用户输入的字母。
(二)主要类型程序中主要用byte型变量存储提示信息,用al寄存器获得用户输入的字母,并将其存储到bl中,通过将字符串的偏移地址存储到eax寄存器中,以实现提示信息的输出。
(三)主要流程三、详细设计本程序首先将运行中要显示的各种提示信息存储在不同的变量里,例如将提示信息“请输入一个大写字母”存储到一个byte型变量的数组中,数组名为msg_inputCap,将.data段设置好后,程序一开始首先将要输出的提示信息相应数组的偏移地址存储到eax寄存器中,然后调用dispmsg子过程,以实现菜单的显示。
然后调用readc子过程,获得用户输入的菜单编号,接着利用cmp命令,判断用户输入的编号,并根据编号做出相应处理。
当用户输入‘a’时,程序跳转到‘a’标识符,提示用户输入一个大写字母,同样利用readc子过程,获得用户输入的大写字母。
程序首先用cmp命令对输入的字母分别与‘A’和‘Z’进行比较,以实现对字母是否合法的判断,如果用户输入的字母范围不在‘A’到‘Z’之间,则程序将报错,并调整到标识符“return_a”,以提示用户重新输入。
只有用户输入的字母有效,程序才将其ASII码加20h,以转换成相应的小写字母。
并将其输出。
当用户输入‘b’时,处理过程类似,程序跳转到‘b’标识符,程序提示用户输入一个小写字母,同样利用readc子过程,获得用户输入的小写字母。
程序首先用cmp命令对输入的字母分别与‘a’和‘z’进行比较,以实现对字母是否合法的判断,如果用户输入的字母范围不在‘a’到‘z’之间,则程序将报错,并调整到标识符“return_b”,以提示用户重新输入。
只有用户输入的字母有效,程序才将其ASII码减20h,以转换成相应的大写字母。
当用户输入‘q’时,程序跳转到‘q’标识符,然后利用无条件跳转语句jmp跳转到程序结束位置。
程序退出,返回模拟dos界面。
程序的具体代码如下:;题目四字母大小写转换程序设计include io32.inc.datamsg1 byte ' 字母转换系统',13,10,0 ; 菜单msg2 byte ' ------------------------------------------------------------',13,10,0 ;分隔线msg3 byte ' 编号操作',13,10,0 ;msga byte ' a 实现大写字母向小写字母的转换',13,10,0msgb byte ' b 实现小写字母向大写字母的转换',13,10,0msgq byte ' q 退出',13,10,0msg_err byte ' 输入错误,请重新输入',13,10,0msg_meau byte '请输入菜单对应的编号: ',0msg_inputCap byte '请输入一个小写字母: ',0msg_inputLow byte '请输入一个大写字母: ',0msg_output_Low byte '对应的小写字母: ',0msg_output_Cap byte '对应的大写写字母: ',0.codestart:mov eax,offset msg1 ;显示菜单各项内容call dispmsgcall dispmsgmov eax,offset msg3call dispmsgmov eax,offset msgacall dispmsgmov eax,offset msgbcall dispmsgmov eax,offset msgqcall dispmsgmeau: mov eax,offset msg_meaucall dispmsg;提示输入对于的菜单编号call readc ;输入菜单对应的编号call dispcrlf ;换行,以使界面更美观cmp al,'a' ;判断用户输入jz a ;用户输入‘a’,则跳转到标识符‘a’cmp al,'b'jz b ;用户输入‘b’,则跳转到标识符‘b’cmp al,'q'jz q ;用户输入‘q’,则跳转到标识符‘q’mov eax,offset msg_errcall dispmsg ;用户输入错误,则提示错误信息jmp meau;return_a:mov eax,offset msg_errcall dispmsga: mov eax,offset msg_inputLow;call dispmsg;提示输入一个大写字母call readc ;获得用户输入的字母mov bl,al ;将用户输入的字母存储到bl中call dispcrlfcmp al,'A' ;判断用户输入字母的合法性jb return_a;如果用户输入的字母比‘A’小,则跳转到return_a标识符cmp al,'Z'ja return_a; 如果用户输入的字母比‘Z’大,则跳转到return_a标识符call dispcmov eax,offset msg_output_Low;用户输入正确,则提示输出相应的小写字母call dispmsg;add bl,20h ;将用户输入字母的ASII码加20h,以实现大写到小写间的转换mov al,blcall dispc;将转换的字母输出call dispcrlfjmp meaureturn_b:call dispmsgb: mov eax,offset msg_inputCap;call dispmsg;提示输入一个小写字母call readc;获得用户输入的字母mov bl,al;将用户输入的字母存储到bl中call dispcrlfcmp al,'a';判断用户输入字母的合法性jb return_b;cmp al,'z'ja return_b;call dispcmov eax,offset msg_output_Capcall dispmsg;sub bl,20h;将用户输入字母的ASII码减20h,以实现小写到大写间的转换mov al,blcall dispc; 将转换的字母输出call dispcrlfjmp meauq: jmp donedone:exit 0end start四、调试分析例如,输入‘a’,则进入大写字母转换成小写字母子程序,程序提示用户输入一大写字母,针对用户输入的大写字母,程序输出相应的小写字母,如果用户输入的不是大写字母,则程序将会报错,并提示用户重新输入。
用户输入‘b’时,进入小写字母转换成大写字母子程序,程序将提示用户输入一小写字母,如果用户输入正确,程序将输出相应的大写字母,否则程序将报错,并提示用户重新输入。
而且,当用户输入的菜单编号错误时,程序也会报错,并提示用户程序输入。
当用户处理信息完毕后,按‘q’键,可退出本程序。
五、用户使用说明用户在dos环境或模拟dos环境进入本程序。
程序将会显示菜单,用户可根据菜单相应编号进行操作。
菜单如下图:例如,输入‘a’,则程序提示用户输入一大写字母,正确输入大写字母后,程序将会输出相应的小写字母;输入‘b’,则程序提示用户输入一小写字母,正确输入小写字母后,程序将会输出相应的大写字母;输入‘q’,则返回dos,退出程序。
六、测试结果示例首先在模拟dos环境进入程序,输入菜单编号‘a’,按提示输入一个大写字母‘I’,程序输出对应的小写字母‘i’;接着输入菜单编号‘b’,按提示输入一个小写字母‘w’,程序输出对应的大写字母‘W’。
输入一个错误的菜单编号‘c’,程序提示“输入错误,请重新输入”,并继续跳转到用户输入菜单编号步骤。
在大写字母转换成小写字母子程序中,输入一个小写字母,程序提示“输入错误,请重新输入”,并要求用户输入一个大写字母。
按‘q’键退出本程序,返回模拟dos界面。
测试结果如下图:七、心得体会通过本次汇编课程设计,我深刻感受到了汇编语言在程序运行效率,以及时间、空间上的优越性。
对汇编中常用的寄存器有了一定的了解,掌握了一些常用的子过程,例如readc、dispmsg等。
同时对程序设计的基本步骤有了一定的了解,在程序的调试过程在不断完善功能,使本程序功能更强大,能够处理更多的错误,处理更多的异常。
本次课程设计,我独立完成了本程序的开发,我感受到编程的兴奋,也感受到的汇编语言的特点,同时也感谢陈老师的指导。
参考文献[1] 钱晓捷.微机原理与接口技术,基于IA-32处理器和32位汇编语言[M].2008年1月:30-100[2] 陈涛.16/32位微机原理,汇编语言及接口技术[M]. 2008年6月:56-70[3] 白中英.计算机组成原理[M].2008年1月:45-53[4] 张雪兰.汇编语言程序设计:从DOS到Windows[M].2006年10月:101-120[5] 王爽. 汇编语言[M]. 2008年3月:135-140。