汇编语言课程设计

发布 2022-10-01 07:27:28 阅读 6916

课程设计报告。

课程名称: 汇编语言程序设计

课题名称系统时间显示

姓名阚鹏。班级: 信息与计算科学082班

指导老师邢远秀老师。

报告日期2023年。

课程设计的主要目的是提高实践能力,包括对硬件的理解分析能力和汇编语言的编程能力。与其他课程不同的是,本课程对硬件有较高的依赖性,因此课程设计的灵活性受到了一定的限制,最好有相应的实验平台支持(尤其是硬件部分),本次课程设计主要是汇编语言部分的练习,通过这部分的练习,学生应该熟悉汇编语言的寻址方式和指令系统,掌握bios和dos系统的功能调用,编制较大程序时的基本方法和熟悉宏汇编的编程环境。使学生既具备完备的理论知识,也能够解决实际学习中碰到的问题。

1.显示系统时间,把系统时间根据不同的提示输入,用不同的背景颜色和前景颜色显示于不同的位置。

2.注意把系统时间放在以【0b800】开始的显存地址中。

一:基本流程:1:输出提示“阚鹏制作的程序”(效果最好是滚动的出项)--3“清屏”

4提示:输出依次输入的(设置光标,输出提示的字符串,接受字符,处理》5屏幕接受四个输入的数据---

·6定义宏(输入的有四个量)注意:还是用过程实现---

7循环提示输入即可。

二:问题:1:字体的问题,是否可以放大。

2:输出结果能否滚动。

三:技巧处理:1:对流动时间,采用调用一次系统时间,之后采取延时程序,每次延时计时为一秒(没有可行性)

2:对中断的重定义。

四:难点:对于输出时,位置和时间的选择的输出的方式是怎么样?

方法有如下的几种:(优缺点在以后补充,已经分析完全了)

方案1:打印选择的菜单,进行选择。

缺点:选择的选项很少,极大的限制了输出结果的完美程度。

优点:操作很简单。

方案2:自己输入显示的颜色和位置,宏定义可以不?完全可以(颜色的输入实现数字变址地址与输出提示的一致)

构建的数组时这样的处理情况:用每个字符组表示位置,内含多种前景颜色(这样造成了空间的浪费),还是。

采用分开存储的方式进行,然后用宏定义函数进行先对的取舍。

优点:输出结果很完美,满足使用的要求。

缺点:需要输入的数据相对来讲是有一定的复杂度的,但对小型的输入来讲是可以接受的。

方案3:输出的位置随着鼠标的位置变化而变化。

优点:很大程度上满足了要求,但是只能满足其中之一的要求,不能够完全满足用户的要求。

缺点:操作是非常复杂的

最终结论:方案2 综合操作的复杂度和可执**况来讲,只是可以接受的操作,同时它的输入也是在接受范围之内。

图2.4.1

2.3设计的不足和需要改进的地方。

通过努力,其实问题还是有很多很是困扰自己。

1:关于中断的重定义。

2:关于部分的寻址方式的理解和细节的把握。

3:难点是系统时间的动态处理。

现在我来总结一下这周所学的内容以及我的心得体会。

其实最大的感悟是:自己学习的东西就是冰山一角,自己平时学的东西是在是太少了。

同时我觉的自己对信息的提取和自学的能力十分的欠缺,就像在图书馆查资料的时候,这种特点表现的十分的明显,同时我的实践能力真的是十分的差劲,同时在实践的时候,我觉得自己的心态真的不是很好,就像自己曾今信仰的一样,任何事情都是自己整体的反映,任何时候都在体现自己的整体水平。

本次汇编语言课程设计是利用我们平时所学的汇编知识编写一个成绩评定的小程序,刚拿到题目的时候还有点担忧。由于平时汇编语言的知识掌握的并不牢固,并且也没有过像这样的为期一周的汇编语言实践课程。但当静下心来仔细把问题读懂和头脑中有了大致思路的时候,这种担忧就完全消失了。

其实这次课程设计并不要求你把书上各种指令及其工能掌握的很好并且能熟练的运用汇编语言编程,而恰恰是利用这次课程设计的机会来提高这方面的能力。这就是一个心态问题,看你有没有摆正心态,看你有没有面对挫折的勇气,如果一开始就没摆正心态,思维就会堵塞,后面就更无法做下去了。这次课程设计让我更加懂得以后在面临困难与挫折的时候要有平和的心态,要有冷静的头脑,坦然的面对,这样才能解决问题。

有了整体思路后,编写程序就变得简单的多了,但也遇到了很多的问题,后经过老师的帮助和同学的讨论,终于又进一步完成了任意数字的输入,采用子程序的思想,简化了源程序**,使程序结构更加紧凑明了。

本次汇编语言课程设计加深了我对汇编语言的理解和运用,一些以前不太理解的指令及其用法现在都很好的掌握了,还有分支程序和子程序的运用,尤其是程序的结构化设计思想,有了结构化设计思想,你的思路就会更加清晰,解决问题就有针对性子程序可以实现源程序的模块化,简化源程序结构。而当这个子程序被多次使用时,子程序还可以使模块得到复用,进而提高编程效率。

通过本次汇编语言课程设计,也让我更加明白实践的重要性,如果整天的学习课本上的理论知识而不拿来用那肯定是很烦的,况且汇编语言这门课本身学起来就很烦,尤其是要去理解各种指令的功能,还要学习相应的硬件知识。再者,学习理论知识的目的还是要拿来运用,通过实践来巩固所学的理论知识。并且通过这次课程设计实践,让我一改往日的厌学情绪,尤其是当程序运行正确的时候,那种来自内心的成就感,让我更加有信心学好汇编语言了。

通过本次课程设计让我更深刻的明白学习要不耻下问,遇到不懂得问题要敢于向老师提问,没有什么不好意思的,不懂就是不懂。如果遇到问题了还坐那里发呆,那肯定完成不了任务。问老师问题,老师会帮你尽力解答,自己也需要努力。

还有遇到问题多和同学**,所谓“独学而无友,则孤陋而寡闻”就是这个道理,或许就在和同学的讨论过程中,点开了你的思路,问题就迎刃而解了。我这次能够顺利的完成程序设计也是得益于老师和同学的帮组,在这里我要真心的感谢他们。

总之,这次汇编语言课程设计让我受益匪浅,我不但收获了知识,提高了能力,而且学到了很多人生的哲理。对于学习汇编语言这门专业课,以后要多看程序,多尝试编写程序,在实践的过程中发现问题,并及时解决问题,让自己更上一层楼。

data segment

dw 0,0定义缓存数据段。

clue1 db 'welcome to use the system ',

clue2 db 'which was made by kanpeng','注意段的长度不能太大,况且有些标点的使用也会影响程序的执行。

clue3 db 'the system time will be presented,please input',13,10

db 'the row number (0-24),the column number (0-74)',13,10

db 'and select the background color(0-7) and the',13,10

db 'frontier color(0-9 or a-f ) by turn according to',13,10

db 'the following list:',13,10

db13,10

db '0-black 1-blue2-green 3-pea green',13,10

db '4-red 5-pinkish red 6-brown 7-white',13,10

db '8-grey 9-light blue a-pale green b-pale cerelean',13,10

db 'c-light red d-light magenta e-yellow',13,10

db 'f-snow white space-quit',13,10

db13,10,'$

data2 db 4 dup(?)

data ends

stack segment

db 128 dup(0定义数据段。

stack ends

code segment

assume cs:code,ds:data

begin:

mov bx,0

mov ax,0b800h

mov es,ax

mov ax,data

mov ds,ax

mov ax,stack

mov ss,ax

mov sp,128

push es

mov ax,0

mov es,ax

设置光标的位置

mov ah,02h

mov bh,00 ;设置页号。

mov dh,12d ;设置行号。

mov dl,6d ;设置列号。

int 10h

输出提示字符串

lea dx,clue1

mov ah,09h

int 21h

lea dx,clue2

mov ah,09h

int 21h ;40行。

延时5秒,调用延时过程,0.5的十倍。

mov bl,10d

back: mov cx,33144

call waitf

dec bl

jnz back

call clear

重新设置光标的位置

mov ah,02h

mov bh,00 ;设置页号。

mov dh,00d ;设置行号。

mov dl,00d ;设置列号。

int 10h

输出选项菜单。

lea dx,clue3

mov ah,09h

int 21h

mov bh,100d

here: mov cx,33144

call waitf

汇编语言课程设计

微机原理实践 课程设计报告。题目 汇编语言课程设计。专业 网络工程 班级 班 学号 姓名 指导教师 完成日期 2013年 1 月 6 日。一 课程设计目的。1 加深对汇编语言理论和基本知识的理解,掌握dos和bios系统功能调用,掌握运用汇编语言设计具有一定功能的软件的基本方法。2 通过编写一定规模...

汇编语言课程设计

学号 01211103402 18 课程设计。打字游戏的设计与实现。一 设计内容 1 功能菜单由 开始 速度调整 统计成绩 和 结束 等组成。2 游戏开始后,出现由26个字母组成的乱序行,这时其中任一字母落下,在键盘上敲入该字母,如果输入正确,字母消失,并得分 按esc键返回主界面 按空格键暂停 按...

汇编语言课程设计

汇。编。语。言。课。程。设。计。姓名 学号 专业班级 计科一班。指导老师 袁全清。一 课程题目。数字时钟,与计算机的时间同步显示。二 设计思想。程序原理 程序先调用系统时间,然后将返回的二进制数转化成ascii码,再通过dos显示功能显示出来,并通过循环不断刷新显示的时间。在二进制转化成ascii码...