汇编课设 显示系统时间 汇编语言程序设计
- 格式:pdf
- 大小:308.35 KB
- 文档页数:14
《汇编语言》课程设计报告显示系统时间《汇编语言》课程设计报告题目:院(系):班级:姓名:学号:指导教师:1设计主要任务这个程序主要是用来显示系统时间的程序。
在这个程序中,主程序首先设置显示方式,取系统时间后将时间保存,继续设置显示方式,利用BIOS 的INT 1AH的2号系统功能调用,将计算机系统的时间参数(BCD码)送入寄存器,将用BCD码表示的时、分、秒转换成ASCII码并进行显示。
读字符串到al中进行判断是否为结束,然后进行显示时间。
后又重新取系统时间。
然后进行一系列的判断是否有进位。
有则进行进位操作,否则重新取系统时间。
1.1设计任务与目标任务:对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
汇编语言程序设计课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。
因此,要求学生能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。
培养学生综合运用所学知识独立完成汇编程序课题的能力。
使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。
提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
目标:用“时:分:秒”(均为两位)的形式连续显示系统时间。
利用BIOS 的INT 1AH的2号系统功能调用,将计算机系统的时间参数(BCD码)送入寄存器,将用BCD码表示的时、分、秒转换成ASCII码并进行显示。
2 设计方案(1)在DOS环境下完成,先利用BIOS功能调用中显示器驱动程序的00H类型调用,设置显示器的显示模式为80*25彩色。
北华航天工业学院《微机原理与汇编语言程序设计》课程设计报告报告题目:年.月.日.星期,当前时间显示作者所在系部:计算机科学与工程作者所在专业:计算机应用作者所在班级:07511作者姓名:王清指导教师姓名:杨立完成时间:12月31日北华航天工业学院教务处制前言汇编语言是一门程序设计语言,学习程序设计的思想与方法既是学习的重点也是难点,课设的目标就是要帮助读者提高程序设计的能力,较深入地掌握汇编语言程序设计的思想与方法。
学习汇编语言时,有些同学已经学习过例如C语言等高级语言,将为我们理解程序设计的思想打下良好基础;但也可能从未学习过其他语言,虽然框框较少,但建立计算机语言与程序设计的概念将是一大难题。
汇编语言是多类知识交叉的学科,一部分知识往往还连带着其他的相关内容,如果处理不好这些连带的内容,将影响学习者对当前知识点的理解。
但是如果先扫清外围,例如先介绍CPU与存储器的内部结构、数据形式,再介绍指令与指令系统、程序设计方法……,虽然可以做到内容单一,也容易接受,但教学未以程序设计为线索展开,可能在开始学习后相当长一段时间里不接触汇编语言程序设计的内容,将令学习过程抽象无趣。
本书考虑到这些情况,采用了实践先行的方法,以一个完整的程序实例引导,首先通过演示与动手,对程序设计及一些基本概念、基本方法建立感性认识,从而屏蔽了一些相关知识带来的干扰,在此基础上再逐一展开。
学习的过程除了理解还有记忆与模仿,人们往往都是从死记、模仿走向创新的,实践引导的过程将为模仿创造条件,也提供了记忆的线索与内容。
以程序为线索展开,将使我们在整个学习过程中的每一步都目标明确,主题清晰,基础扎实,在不知不觉中登上程序设计的颠峰。
汇编语言的主要用途之一是涉及硬件的开发,目前社会对具有一定硬件基础的计算机人才需求较旺,本书围绕输入、输出程序设计介绍了若干常用芯片的结构与程序设计方法,即加强了涉及硬件的程序设计技术的教学,也有助于提高设计实际应用系统的能力。
华北科技学院课程设计说明书课程名称:汇编语言班级: 计算机B08-1 姓名: _邵璐婷 _ 学号:__ 200807014109 设计题目:显示系统当前时间与日期 _ 设计时间: 2009-06-21至2009-07-02指导教师: _ 孟广学 _ _ 评语:_________________________________ _________________________________________ _________________________________________ _________________________________________ _________________________________________ 评阅成绩:____评阅教师:____________一、课程设计目的进行程序设计方法和技能的基本训练,巩固在课堂上学到的有关程序设计的基本知识和基本方法,通过实际动手能力的培养,进一步熟悉汇编语言的结构和使用方法,达到能独立阅读、编制和调试一定规模的汇编语言程序的水平。
二、课程设计要求1.要求编写并调试通过一个小型软件,实现对软件或硬件的操作。
2.遵循模块化、结构化的程序设计方法。
3.要求程序必须正确。
4.程序简明易懂,多运用输入输出提示,出错信息及必要的注释。
5.要求程序结构合理,语句使用得当。
6.适当追求编程技巧和程序运行效率。
三、课程设计题目:题目:显示系统当前时间与日期要求设计界面提示信息为:“Please input DATE(D) OR TIME(T)OR QUIT(Q):”,从键盘键入“D”,可显示系统日期。
从键盘输入“T”,可显示系统时间。
从键盘输入“Q”,退出程序。
利用DOS的系统功能调用的2AH和2CH功能调用,读取系统日期和时间。
将日期和时间转换为相应的ASCII码字符,显示在屏幕上。
四、课题分析这个题目是显示系统当前时间与日期,这就需要用DOS的2A号功能---取系统日期和2C号功能---取系统时间,以及BIOS的06号功能---清屏或上卷,02号功能---制光标位置。
汇编语言程序设计实验教程教学设计一、教学目标1.掌握汇编语言的基本指令和编程思想;2.能够使用汇编语言进行简单程序设计;3.能够理解计算机底层运行原理。
二、教学内容1.汇编语言基础知识(常用指令、流程控制、数据传输等);2.简单的程序设计实例(数值计算、字符串处理等);3.实验环境的搭建和使用。
三、教学方法1.讲授型教学结合实例演示;2.学生自学课程材料和实验操作指南;3.实验探究和讨论;4.组织小组项目,鼓励合作学习。
四、教学过程第一周本周教学目标:讲解汇编语言基础知识和常用指令。
时间安排教学内容教学方式第一课时引言:计算机底层工作原理讲授时间安排教学内容教学方式第二课时汇编语言概述讲授第三课时汇编语言基本指令(数据传输)讲授+实例演示第四课时汇编语言基本指令(逻辑运算)讲授+实例演示第二周本周教学目标:讲解汇编语言的流程控制和程序设计实例。
时间安排教学内容教学方式第一课时汇编语言基本指令(流程控制)讲授+实例演示第二课时程序设计实例(数值计算)讲授+实例演示第三课时程序设计实例(字符串处理)讲授+实例演示第四课时总结回顾讲授第三周本周教学目标:实验环境的搭建和使用,以及实验探究和讨论。
时间安排教学内容教学方式第一课时实验环境搭建实验操作指导第二课时实验一:初识汇编语言编程实验操作指导+实验探究第三课时实验二:数值计算的汇编实现实验操作指导+实验探究第四课时实验三:字符串处理的汇编实现实验操作指导+实验探究第四周本周教学目标:自主学习和小组项目。
时间安排教学内容教学方式第一-四课时自主学习和小组项目自主学习+小组研究五、考核方式1.实验报告和代码评分;2.期末考试和综合评价。
六、教学资源1.课程PPT和课程材料;2.实验指导书和实验代码;3.在线学习平台和资料共享平台。
七、教学效果评价在本门课程学习结束后,学生应能够熟练掌握汇编语言的基本知识和编程思想,能够使用汇编语言进行简单程序设计,能够理解计算机底层运行原理。
DOS课程设计汇编显示日期一、教学目标本节课的教学目标是让学生掌握DOS环境下汇编语言编程的基本技能,能够使用汇编语言编写程序显示系统日期。
具体分为以下三个方面的目标:1.知识目标:使学生了解DOS环境下汇编语言的基本语法和编程方法,理解汇编语言与机器码的关系,掌握如何使用汇编语言访问系统功能和硬件资源。
2.技能目标:培养学生具备使用汇编语言编写简单程序的能力,能够独立完成显示系统日期的汇编程序编写和调试。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,激发学生主动探索和学习计算机编程的内在动力,培养学生的团队协作意识和解决问题的能力。
二、教学内容本节课的教学内容主要包括以下几个部分:1.DOS环境下汇编语言的基本语法和编程方法。
2.汇编语言与机器码的关系及其转换过程。
3.使用汇编语言访问系统功能和硬件资源的方法。
4.编写和调试汇编语言程序的技巧。
5.汇编语言编程实践:编写显示系统日期的汇编程序。
三、教学方法为了达到本节课的教学目标,将采用以下几种教学方法:1.讲授法:讲解DOS环境下汇编语言的基本语法、编程方法和汇编语言与机器码的关系。
2.案例分析法:分析示例程序,让学生了解如何使用汇编语言编写程序。
3.实验法:让学生动手编写和调试汇编语言程序,巩固所学知识。
4.讨论法:在课堂上鼓励学生提问、交流和分享心得,提高学生的团队协作能力和解决问题的能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,将准备以下教学资源:1.教材:《DOS汇编语言编程教程》。
2.参考书:提供一些汇编语言编程的参考书籍,以便学生课后自学。
3.多媒体资料:制作课件和教学视频,帮助学生更好地理解汇编语言编程的相关概念。
4.实验设备:为学生提供计算机和汇编语言编程所需的开发环境及实验设备。
五、教学评估本节课的教学评估将采取多元化方式,以全面、客观、公正地评价学生的学习成果。
评估方式包括:1.平时表现:观察学生在课堂上的参与程度、提问回答、小组讨论等表现,以了解学生的学习态度和实际操作能力。
课程设计设计题目:学号:班级:姓名:成绩:一、系统时间显示程序设计功能:调用系统时间,并将调用的用二进制表示的时间数转换成ASCII码,并将时间存入显存区。
将存在显存区的时间用字符串的形式显示出来,并且增加功能选项来控制显示的颜色和显示的位置。
二、主要的设计思想由用户输入前景色和背景色,输入行和列,存入数据段。
利用int 21h中断(ah=2ah和ah=2ch)调取系统时间,存入数据段。
然后依次取数据段中存储的时间字符和颜色结合组成一个数(大小两个字节,颜色在高位,字符在低位)送到段地址为b800偏移地址为(行*160+列*2)的内存区,就可以得到一个带颜色的字符,再取下一个时间字符和颜色,循环显示得到一次结果。
然后循环调用获得系统时间,输出时间子程序,得到变化的时间。
按下任意键退出程序。
三、主要程序框图四、 源代码.model small.386.stack 200h;************************************************************数据段.dataa db 16,'please input the position. $'b db 16,'please input the color.$'c db '1:red 2:blue 3:green 4:black 5:white $'d db 16,'please input the row 1-25 :$'e db 16,'please input the cloun 1-80 :$'f db 16,'please input the backgroud color :$'g db 16,'please input the foreColor :$'返回h db 0dh,0ah,16,'you set backcolor and forecolor the same color.$'x db 0dh,0ah,16,'press any key to exit the program.$'i db '/// ::: ' ;时间中间的间隔符savetime db 10 dup(0) ;用于保存时间savecolor db 2 dup(0) ;用于保存颜色(背景和前景色)saveposition dw 2 dup(0) ;用于保存位置(行和列)color db 4h,1h,2h,0,0fh ;分别对应颜色红、蓝、绿、黑、白;*****************************************************************数据段结束.codemain proc farstart:push dssub ax,axpush axmov ax,@datamov ds,ax;-------------------------------------------------------------------------------------------------------------------- lea dx,b ;用于提示信息mov ah,9hint 21hcall linefeedcall linefeedlea dx,c ;用于提示信息mov ah,9hint 21hcall linefeedlea cx,fcall setColor ;********* *****调用子程序用于设置颜色(前景和背景色)mov savecolor[0],al ;把颜色存到内存中s00:lea cx,gcall setColor ;********** ****调用子程序用于设置颜色(前景和背景色)mov savecolor[1],al ;把颜色存到内存中cmp al,savecolor[0] ;提示两次输入颜色相同否则不执行jnz s01lea dx,h ;用于提示信息mov ah,9h ;用于提示信息int 21h ;用于提示信息jmp short s00;------------------------------------------------------------------------------------------------------------------------s01:call linefeedlea dx,a ;用于提示信息mov ah,9h ;用于提示信息int 21h ;用于提示信息call linefeedlea cx,drepeat1:call setPosition ;**** ********调用子程序用于存贮行和列cmp bl,0 ;判断输入是否合法jl repeat1cmp bl,24jg repeat1mov ax,bxmov cl,0a0hmul clmov saveposition[0],ax ;把行号乘160后存储lea cx,erepeat2:call setPosition ;***** ******调用子程序用于存贮行和列cmp bl,0 ;判断输入是否合法jl repeat2cmp bl,79jg repeat2mov ax,bxmov cl,2mul clmov saveposition[2],ax ;把列号乘2后存储mov dx,offset xmov ah,9int 21h;---------------------------------------------------------------------------------------------------------------------------- repeat00:call datetime ;******* *调用子程序存储时间;----------------------------------------------------------------------------------------------------------------------------mov ax,0b800h ;设置显示段地址mov es,axmov di,saveposition[0]add di,saveposition[2] ;di中为要显示位置的偏移地址mov al,savecolor[0]mov cl,4shl al,cladd al,savecolor[1]mov bh,al ;先把颜色存到al再存到bhmov eax,0mov si,0call showtime ;****** *****调用子程序用于显示时间;---------------------------------------------------------------------------------------------------------------------- mov dl,0ffhmov ah,6int 21hjz repeat00retmain endp;--------------------------------------------------------------------------------------------------------------------datetime proc near ;****** *** 子程序存储时间;时间依次存在savetime数组中mov ah,2Ah ;时间依次存在savetime数组中int 21hmov word ptr savetime[0],cxmov savetime[2],dhmov savetime[3],dlmov savetime[4],almov ah,2Chint 21hmov savetime[5],chmov savetime[6],clmov savetime[7],dhmov savetime[8],dlret;------------------------------------------------------------------------------------------------------------------ setColorproc near ;******* ****调用子程序用于设置颜色(前景和背景色)call linefeedmov dx,cx ;用于提示信息mov ah,9hint 21hcall linefeeds0:mov ah,1hint 21hsub al,30hcmp al,1 ;判断输入是否合法jl s0cmp al,5djg s0mov bl,al ;把颜色的二进制数值先存在al中mov bh,0mov al,color[bx-1]ret;------------------------------------------------------------------------------------------------------------- setPositionproc near ;******** *子程序用于存贮行和列push cxcall linefeedmov dx,cx ;用于提示信息mov ah,9hint 21hcall linefeedmov bx,0 ;以下几行用于把输入的数保存在bx寄存器中newchar:mov ah,1int 21hsub al,30hjl exit0cmp al,9djg exit0cbwxchg ax,bxmov cx,10dmul cxxchg ax,bxadd bx,axjmp newcharexit0:dec bxpop cxret;------------------------------------------------------------------------------------------------------------------- showtimeproc near ;**********子程序用于显示时间mov dx,word ptr savetime[si] ;输出年mov cx,1000dcall divAllmov cx,100dcall divAllmov cx,10dcall divAllmov cx,1dcall divAllmov bl,i[eax]mov es:[di],bx ;用于输出符号“/”add di,2add si,2inc eaxshow: ;循环输出后面的时间,每次循环输出一个两位数时间mov bl,savetime[si]mov dl,blmov dh,0mov cx,10dcall divAllmov cx,1dcall divAllinc simov bl,i[eax]mov es:[di],bx ;循环输出符号“/或:”inc eaxadd di,2cmp si,8jng showretdivAllproc near ;功能输出具体的数字到屏幕上push bxpush axmov ax,dxmov dx,0div cxadd al,30hmov bl,almov es:[di],bxadd di,2pop axpop bxretlinefeed ptr near ;换行的子程序mov dl,0dhmov ah,2hint 21hmov dl,0ahint 21hretend start五、总结报告(1)课程设计中所遇到的主要问题和解决方法。
《汇编语言》课程设计报告题目:院(系):班级:姓名:学号:指导教师:1设计主要任务这个程序主要是用来显示系统时间的程序。
在这个程序中,主程序首先设置显示方式,取系统时间后将时间保存,继续设置显示方式,利用BIOS的INT 1AH的2号系统功能调用,将计算机系统的时间参数(BCD码)送入寄存器,将用BCD码表示的时、分、秒转换成ASCII码并进行显示。
读字符串到al 中进行判断是否为结束,然后进行显示时间。
后又重新取系统时间。
然后进行一系列的判断是否有进位。
有则进行进位操作,否则重新取系统时间。
1.1设计任务与目标任务:对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
汇编语言程序设计课程设计是在教学实践基础上进行的一次大型实验,也是对该课程所学理论知识的深化和提高。
因此,要求学生能综合应用所学知识,设计与制造出具有较复杂功能的应用系统,并且在实验的基本技能方面上进行一次全面的训练。
培养学生综合运用所学知识独立完成汇编程序课题的能力。
使学生能够较全面地巩固和应用课堂中所学的基本理论和程序设计方法,能够较熟练地完成汇编语言程序的设计和调试。
提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
培养学生从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力。
培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
目标:用“时:分:秒”(均为两位)的形式连续显示系统时间。
利用BIOS 的INT 1AH的2号系统功能调用,将计算机系统的时间参数(BCD码)送入寄存器,将用BCD码表示的时、分、秒转换成ASCII码并进行显示。
2 设计方案(1)在DOS环境下完成,先利用BIOS功能调用中显示器驱动程序的00H 类型调用,设置显示器的显示模式为80*25彩色。
课程设计报告课程名称汇编语言程序设计课题名称编写一个时钟程序专业班级学号姓名指导教师2011年3 月6 日课程设计任务书课程名称汇编语言程序设计课题编写一个时钟程序专业班级学生姓名学号指导老师审批任务书下达日期2011年2 月28 日任务完成日期2011年3 月6 日一、设计内容与设计要求1.课程设计目的:《汇编语言程序设计》是计算机专业的重要的专业基础课,通过本课程设计使学生进一步巩固课堂所学,全面熟悉、掌握8088宏汇编语言程序设计的基本方法和技巧,进一步提高编写程序、阅读分析程序及上机操作、调试程序的能力。
2.课题题目1)用“*”画菱形框2)读入一个文本文件并以DEBUG中的D命令格式显示。
3)文件加密程序4)编写一个时钟程序5)画网格线6)画脉冲波图形7)测量任意程序的运行时间8)计算比赛成绩3.设计要求:1)在一周内学生须上机16小时以上,程序调试完后,须由指导老师在机器上检查运行结果,经教师认可后的源程序可通过打印机输出。
2)分组及安排A.每组同学必须完成所指定的题目,每个同学须自己完成设计,应有不同的思路。
B.按学号分组,第一组为1、9、17、25、33号同学,第二组为2、10、18、26、34号,第三组为3、11、19、27、35号,依次类推,其中第一组做第一题,第二组做第二题,依次类推。
3)按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。
4)不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计,成绩的考核按上机表现、答辩成绩及课程设计说明书来综合评定。
成绩分为优、良、中、及格、不及格五级分评定。
二、进度安排第2 周星期一 8时:00分——12时:00分星期二 8时:00分——12时:00分星期三 8时:00分——12时:00分星期四 8时:00分——12时:00分课题1.用“*”画菱形框要求:A、背景为蓝色、“*”为红色,菱形框画在屏幕中间,菱形中间为空格。
汇编语言编程:在屏幕右上角显示系统时间汇编语言编程:在屏幕右上角显示系统时间在系统加电初始化期间,把系统定时器初始化为每隔约55毫秒发出一次中断请求,CPU在响应定时器中断请求后转入8H号中断处理程序,BIOS提供的8H号中断处理程序中有一条中断指令INT 1CH,所以每秒要调用到约18.2次1CH号中断处理程序,而BIOS的1CH号中断处理程序实际上并没有做任何工作,只有一条中断返回指令。
------------------------------------------------------------------------------------------系统Int 08h系统定时器由系统时钟每秒大约调用18.2次(每小时65536次)调用寄存器:无返回寄存器:无注释:Int 08h是一个每秒钟要调用18.2次的中断,用于完成高级的各种计数,该中断直接与系统时钟芯片的通道0相连。
要编写实用程序中的TSR,如SideKick,就会发现Int 08h对于由定时来触发的任务来说是特别有用的。
此中断要调用Int 1Ch(定时计数)。
因此大多数TSR应该连接到Int 1Ch而不是连接到Int 08h上。
由于每隔55毫秒此中断就被调用一次,因而,面向该中断的处理程序必须尽可能快地执行。
中断处理只能是处理器系统常规使用的一小部分。
并且,由于计时器被当作IRQ0(高优先级硬件中断),因而会优先于同一系统上的其它中断而服务于中断Int 08h。
若对该中断处理得不好,就会导致服务于其它的重要中断(如磁盘服务)时出现问题。
注意,由于在Int 08h处理程序完成其处理之前调用了Int 1Ch(计时器的用户拴接),因而,面向该中断的操作也领先于其它任何硬件中断请求而得以执行。
富有经验的软件设计人员则常常利用这一事实。
地址0040:006Ch是一个32位按天计算的时间(time-of-day)指示符,计数自启动以来的时间计数。