微机原理与汇编语言程序设计课程设计报告.docx

上传人:b****8 文档编号:28731638 上传时间:2023-07-19 格式:DOCX 页数:31 大小:495.53KB
下载 相关 举报
微机原理与汇编语言程序设计课程设计报告.docx_第1页
第1页 / 共31页
微机原理与汇编语言程序设计课程设计报告.docx_第2页
第2页 / 共31页
微机原理与汇编语言程序设计课程设计报告.docx_第3页
第3页 / 共31页
微机原理与汇编语言程序设计课程设计报告.docx_第4页
第4页 / 共31页
微机原理与汇编语言程序设计课程设计报告.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

微机原理与汇编语言程序设计课程设计报告.docx

《微机原理与汇编语言程序设计课程设计报告.docx》由会员分享,可在线阅读,更多相关《微机原理与汇编语言程序设计课程设计报告.docx(31页珍藏版)》请在冰豆网上搜索。

微机原理与汇编语言程序设计课程设计报告.docx

微机原理与汇编语言程序设计课程设计报告

课程设计报告

称:

微机原理与汇编语言程序设计课程设计目:

汇编语言编程实践及电子钟设计

系:

级:

号:

计算机系

学生姓名:

指导教师:

设计周数:

绩:

,)

《微机原理与汇编语言程序设计课程设计》评分表

实验结果

(60分)

电话号码本程序完善(5分)

显示器I/O程序设计(10分)

中断程序设计(5分)

发声系统设计(10分)

键盘程序设计(10分)

电子钟设计(20分)

实验报告

(30分)

报告规范完整、符合要求,工作量大文档逻辑性强,表述流畅(24-30分

报告较规范完整、基本符合要求,工作量适中,文档逻辑性较强,表述较流畅(15-23分)

报告不规范完整、不符合要求、文档逻辑性差,表述不清(0-14分)

实验过程

(10分)

实验认真,主动性强,反映出较强的综合分析、解决问题的能力,出勤率高,无迟到早退现象(7-10分)

实验较认真,较积极主动,反映出一定的综合分析、解决问题的能力,出勤率较高,较少迟到早退(4-6分)

实验不认真主动,分析解决问题能力一般,出勤率低(1-3分)

总成绩

(0-100分)

优(90-100分)

良(80-89分)

中(70-79分)

通过(60-69分)

不通过(≤60分)

一、目的与要求

本课程设计包含软件部分和硬件部分两个环节。

软件部分:

进一步熟悉汇编语言设计方法和步骤,完成在有限的课内实验环节无法涉及到的具有综合设计性的软件实验,如中断程序设计、I/O程序设计、宏设计等。

硬件部分:

利用伟福试验设备中的8253可编程定时/计数器,8259中断控制器,8255

可编程并行接口芯片和七段数码管等设计一个电子钟电路,并编制一个程序使电子钟能正常运行。

通过软硬件环节的设计和调试,巩固所学知识,增强动手能力,提高综合性工程素质。

二、主要内容

软件部分:

1.熟悉编程环境,完善前期电话号码本设计的功能;2.显示器I/O程序设

计,完成窗口控制程序;3.中断程序设计,完成内部中断服务程序和外部中断服务程序设计;4.发声系统设计;5.键盘程序设计。

硬件部分:

1.总体模块设计,查阅资料,设计主程序和中断服务程序的流程;2.详细

设计,完成软硬件模块的框架。

3.调试,对前述工作进一步细化;4.完善功能,实现电子钟的准确运行,并进一步改进其功能;5.验收、实验报告撰写。

三、进度计划

序号

设计(实验)内容

完成时间

备注

1

熟悉环境,完善电话号码本设计的功能

半天

2

显示器I/O程序设计

1天

3

中断程序设计

1天

4

发声系统设计

1天

5

键盘程序设计

1天

6

验收、实验报告总结、撰写

半天

7

总体模块设计

半天

8

详细设计

1天半

9

调试

1天

10

完善功能

1天

11

系统验收、实验报告撰写

1天

四、设计(实验)成果要求

1.软件环节要求掌握各环节的设计原理、能实现各环节要求的功能。

2.硬件环节要求利用相关接口芯片,实现电子钟的准确运行等功能。

3.总结实验,撰写实验报告。

五、考核方式

实验结果(60%)+实验报告(30%)+实验过程表现(10%)

1.验收:

完成课程设计题目后由指导老师验收,学生汇报上机题目完成情况,回答提出的问题。

2.撰写课程设计实验报告:

完成课程设计题目后,应认真撰写课程设计报告,报告应内容全面、格式规范。

学生姓名:

指导教师:

一、

实验一电话号码本设计完善

课程设计(综合实验)的目的与要求

1.熟练掌握汇编语言程序设计环境,根据前期掌握程度,可选择Masmforwindows集成实验环境(实验室配备),或自行安装masm5.0、masm6.0、Emu8086,Tasm等,软件开发环境可由学生根据使用爱好自选。

1.根据课内实验验收时指导教师提出的意见,以及和同学讨论的结果,设计实现一

个功能比较完善的电话号码本,并在设计中体现自己的工作特色,即具备和其他设计不同之处。

二、

设计(实验)正文

1.定义电话本的结构体

2.删除子程序

CANCELPROC;删除记录的过程

newline

MOVDX,OFFSETCZTS

MOVAH,9H

INT21H

MOVAH,01H;输入学号

INT21H

MOVBJ1,AL

MOVAH,01H

INT21H

MOVBJ2,AL

MOVBX,0

MOVDI,30

ALCZ9:

MOVSI,0;先检查是否有要删除的数据MOVAH,BJ1

CMPAH,STU[BX].NUM[SI]

JNEALCZ8

INCSI

MOVAL,BJ2

CMPAL,STU[BX].NUM[SI]

JEALSC1;有此学号就转到删除它ALCZ8:

ADDBX,TYPESTU

DECDI

CMPDI,0

JNEALCZ9

newline

MOVAH,9H

MOVDX,OFFSETNO;没有就告知用户INT21H

newline

CALLTO_DOES

ALSC1:

MOVBX,0

LSC4:

MOVSI,0

MOVAH,BJ1

CMPAH,STU[BX].NUM[SI]

JNELSC1

INCSI

MOVAL,BJ2

CMPAL,STU[BX].NUM[SI]

JELSC2;找到要删除的学生就删除LSC1:

ADDBX,TYPESTU

JMPLSC4

LSC2:

MOVSI,0;删除学生资料,即把它清零MOVSTU[BX].NUM[SI],0

INCSI

MOVSTU[BX].NUM[SI],0

MOVSI,0

MOVCX,20

LSC3:

MOVSTU[BX].NAM[SI],0

INCSI

LOOPLSC3

MOVSI,0

MOVCX,12

SC1:

MOVSTU[BX].TLE[SI],''

INCSI

LOOPSC1

newline

MOVAH,9

MOVDX,OFFSETSCCG;显示‘删除成功’INT21H

newline

RET

CANCELENDP

3.查找记录

FINDPROC;查找记录的过程

newline

MOVDX,OFFSETCZTS

MOVAH,9H

INT21H

MOVAH,01H;输入查找的学号

INT21H

MOVBJ1,AL

MOVAH,01H

INT21H

MOVBJ2,AL

newline

MOVBX,0

MOVDI,30;循环次数

LCZ9:

MOVSI,0;先检查是否有要查找数据

MOVAH,BJ1

CMPAH,STU[BX].NUM[SI]

JNELCZ8

INCSI

MOVAL,BJ2

CMPAL,STU[BX].NUM[SI]

JELCZ7

LCZ8:

ADDBX,TYPESTU

DECDI

CMPDI,0

JNELCZ9

MOVAH,9H;没有数据就告知用户

MOVDX,OFFSETNO

INT21H

newline

CALLTO_DOES

LCZ7:

CALLLINE;有要找的学号时先输出栏目名称newline

MOVDX,OFFSETML

MOVAH,9H

INT21H

newline

movah,02h;

MOVDL,''

MOVDL,''

INT21H

MOVBX,0;从第1个学生开始查找

LCZ4:

MOVSI,0

MOVAH,BJ1

CMPSTU[BX].NUM[SI],AH

JNELCZ5

INCSI

MOVAL,BJ2

CMPSTU[BX].NUM[SI],AL

JZLCZ2

LCZ5:

ADDBX,TYPESTU

JMPLCZ4

LCZ2:

MOVSI,0;开始输出要找的学生的资料MOVAH,02H

MOVDL,STU[BX].NUM[SI];输出学号

INT21H

INCSI

MOVDL,STU[BX].NUM[SI]

INT21H

MOVCX,4;输出空格

MOVAH,02H

HG:

MOVDL,''

INT21H

LOOPHG

MOVSI,0

LCZ3:

MOVDL,STU[BX].NAM[SI];输出姓名

INT21H

INCSI

CMPSTU[BX].NAM[SI],0

JNELCZ3

MOVCX,20

SUBCX,SI;输出空格以便使数据输出时对齐HG4:

MOVDL,''

INT21H

LOOPHG4

MOVSI,0

LDY1:

MOVDL,STU[BX].TLE[SI];输出电话号码CMPDL,''

JEJJB

INT21H

INCSI

JMPLDY1

JJB:

newline

CALLLINE

newline

CALLTO_DOES

RET

FINDENDP

5.浏览记录

SKIMPROC;浏览记录的过程newline

MOVBX,0

MOVDI,30

YY1:

MOVSI,0;检查是否一个数据都没有CMPSTU[BX].NAM[SI],0

JNEKK1;有数据时转输出

ADDBX,TYPESTU

DECDI

CMPDI,0

JNEYY1

MOVAH,9H;没有就告知用户

MOVDX,OFFSETNODA

INT21H

newline

CALLTO_DOES

KK1:

CALLLINE

newline

MOVAH,9H;先输出栏目名称

MOVDX,OFFSETML

INT21H

newline

MOVBX,0

MOVDI,30

LL1:

MOVSI,0;开始输出所有学生资料CMPSTU[BX].NAM[SI],0

JNZPP1

ADDBX,TYPESTU

DECDI

CMPDI,0

JNELL1

JMPDOES10

PP1:

MOVSI,0

MOVDL,''

INT21H

MOVDL,''

INT21H

MOVDL,STU[BX].NUM[SI];输出学号INT21H

INCSI

MOVDL,STU[BX].NUM[SI];输出学号INT21H

MOVSI,0

MOVCX,4

MOVAH,02H

HG3:

MOVDL,''

INT21H

LOOPHG3

NA1:

MOVDL,STU[BX].NAM[SI];输出姓名INT21H

INCSI

CMPSTU[BX].NAM[SI],0

JNZNA1

MOVCX,20

SUBCX,SI

HG2:

MOVDL,''

INT21H

LOOPHG2

MOVSI,0

LDY2:

MOVDL,STU[BX].TLE[SI];输出电话号码CMPDL,''

JEJJ1

INT21H

INCSI

JMPLDY2

JJ1:

newline

ADDBX,TYPESTU

DECDI

CMPDI,0

JNELL1

DOES10:

CALLLINE

newline

CALLTO_DOES

RET

三、

SKIMENDP

课程设计(综合实验)总结或结论

通过本次课程设计,进一步掌握了汇编的程序设计方法,对原来学过的和没学过

的知识都有了较深的理解,也深刻体会到用汇编语言编写代码却是不容易,汇编好几

行语句在高级语言中只需要一条就可以完成,但事物总有两面行,存在即具其合理性,

asm的优越的性能(时间和空间),高级语言是望尘莫及的,所以学号汇编也是为我

们以后的成功奠定基础。

相信通过这次汇编的课程实际,自己的分析问题和处理问题

的能力都有了一次不小的提高,收获不少。

同时也要感谢在课程设计中给予我帮助的老师。

此次课程设计目的已经达到。

实验二:

显示器I/O程序设计

一.

课程设计(综合实验)的目的与要求

示器I/O程序设计,完成屏幕窗口控制程序。

要求在屏幕上开出三个窗口,它们的左上角和右下角的坐标分别是(5,10),(15,30)和(5,50),(15,70)和(18,15),(22,65),如从键盘输入字符,则显示在右窗口,同时也显示在下窗口的最下面一行。

若需要将字符显示于左窗口,则先按下←键,接着再从键盘输入字符,字符就会从左窗口的最下行开始显示,同时下窗口也显示出左窗口的内容。

如果再按下→键,输入字符就会接在先前输入的字符之后显示出来。

当一行字符显示满后,窗口自动向上卷动一行,输入字符继续显示与最低一行,窗口最高一行向上卷动后消失。

二.

设计(实验)正文

I/O窗口中自己达到的目的有:

1.回车:

通过获取回车键的接通码进入该程序段,进行卷一行,且光标设置,并进行分左右窗口设置,跳转不同。

ENTERHUAN:

SCROLL18,15,22,65,1

MOVDWY,15

CMPWINDOWNUM,0

JZONE

SCROLL5,50,15,70,1

POS_CURSE15,50

MOVRY,50

movrx,15

JMPINPUT

OOO:

SCROLL5,10,15,30,1

PPP_CURSE15,10

MOVLY,10

movlx,15

JMPINPUT

2.删除:

通过int10功能中03H获取光标位置,通过卷行,向前卷动,以达到删除效果。

DEL:

movah,03h

int10h

decdl

pushdx

SCROLLdh,dl,dh,dl,0

popdx

pos_cursedh,dl

movry,dl

jmpinput

三.

课程设计(综合实验)总结或结论

此实验中是在别人的基础上进行改动,虽然自己编写的程序不太长,但是仍

然存在很多困难。

并且在此程序中仍然存在错误,如删除中,向前滚动,并不能

达到删除,会出现输出第二个字母的时候向后跳显示,只是屏幕上显示删除,实际内存中并没删除。

并且并没有判断到窗口的最左行想上一行跳。

实验三:

中断程序设计

一.

课程设计(综合实验)的目的与要求

中断程序设计,完成内部中断服务程序和外部中断服务程序设计。

具体要求为:

(1).编写一个内部中断服务程序,使其能够显示以“0”结尾的字符串(利用显示器功能调用INT10H)。

字符串缓冲区首地址为入口参数,利用DS:

DX传递此参数。

(2).编写一个可屏蔽的外部中断服务程序,中断请求来自8259A的IRQ0,在新的外部中断服务程序(新08H中断)中,使得每55ms的中断在屏幕上显示一串信息“A8259AInterrupt!

”,显示10次后,恢复原中断服务程序,返回DOS。

二.

设计(实验)正文

1.内部中断

2.外部中断

其中增加了一小段进行延迟,及中断10次才输出一次inccounter1

cmpcounter1,0ah

jbstop

movcounter1,0

inccounter

三.

课程设计(综合实验)总结或结论

通过本次试验,我了解了汇编程序的开发过程,能够在MASMforwindow环

境下的进行编辑,变异,连接程序,掌握了INT21H软件中的的调用DOS内

部子程序的方法。

但对于dos环境下的汇编程序的编辑编译连接使用还不是

很熟悉,只能是在masmforwindow继承软件开发环境熟悉的编译连接运行。

一.

实验四:

发声系统设计

课程设计(综合实验)的目的与要求

发声系统设计,参考教材中的例9.1,利用扬声器控制原理,编写一个简易乐器程序。

要求当按下1~8数字键时,分别发出连续的中音1~7和高音i(对应频率依次为524Hz、588Hz、660Hz、698Hz、784Hz、880Hz、988Hz和1048Hz);

当按下其他键时,暂停发声。

如果时间允许,可在此基础上自行发挥,如增加按键功能、编辑歌曲等。

二.

设计(实验)正文

1.扬声器设置

speakerproc

pushax

moval,0b6h;10110110out43h,al

popax

out42h,al

moval,ah

out42h,al

ret

speakerendp

speakonproc;扬声器开pushax

inal,61h

oral,03h

out61h,al

popax

ret

speakonendp

speakoffproc;扬声器关pushax

inal,61h

andal,0fch

out61h,al

popax

ret

三.

speakoffendp

2.输入判断,并调用

first:

movah,1h

int21h

cmpal,1bh

jzexit

cmpal,31h

jbclose

cmpal,38h

jaclose

andal,0fh

movah,00h

addax,ax

movsi,ax

movbx,offsetfreq

movax,[bx+si]

movcx,ax

movdx,0012h

movax,34dch

divcx

callspeaker

callspeakon

jmpfirst

close:

callspeakoff

jmpfirst

课程设计(综合实验)总结或结论

音符和频率之间有一定的对应关系,如果计算机键盘上的一些键和音符、

频率也形成一种对应关系,则可通过键盘控制扬声器发出各种音符声音,这时计算机键盘就变成了钢琴键盘,就可以用他弹奏出简单的乐曲了。

实验五:

键盘程序设计

一.

课程设计(综合实验)的目的与要求

键盘程序设计,编写一个程序,每当在键盘上按下一个按键时,就显示其接通和断开扫描码。

具体原理参见教材第十一章,并行接口。

二.

设计(实验)正文

1.输出接通扫描码的十位个位计算binihexproc

movch,4

rotate:

movcl,4

rolbx,cl;循环左移moval,bl

andal,0fh

addal,30h

cmpal,3ah

jlprint

addal,7

print:

movdl,al

movah,2

int21h

decch

jnzrotate

ret

binihexendp

1.计算断开扫描码,在接通扫描码的基础上加80h并调用以上程序

2.键盘上F1~F9在字符上的输出,先输出F,再对其接通扫描码减去3bh,进行输出movah,2;是就输出F

movdl,46h

int21h

subch,3bh

addch,30h

movdl,ch

movah,2

int21h

movdl,0Dh

movah,2

int21h

movdl,0Ah

movah,2

int21h

jmpagain

next:

movdl,cl

movah,2

int21h

;打印回车换行

movdl,0Dh

movah,2

int21h

movdl,0Ah

movah,2

int21h

三.

课程设计(综合实验)总结或结论

本实验中的要求是将输入的十六进制的数转换为十进制的数,并进行输出,

结果是将十六进制的数按ASCII码转换而得的。

在此程序中较为复杂的是进

行转换,程序中,需要设定循环次数,以及跳转方向。

同时,在输出字符时也需要进行判断,分类输出。

实验六:

电子钟设计

一.

课程设计(综合实验)的目的与要求

利用伟福实验系统提供的8253计数器,8259中断控制器、七段数码管、8255并行接口芯片等,设计实现一个电子钟的电路,并编制一个程序使得该电子钟能正常工作。

其中,8253计数器用于产生计时脉冲(如1s、100ms等),中断服务程序用于对时、分、秒的计数更新,并存入相应的存储单元,主程序设置相应芯片的工作方式、完成时、分、秒信息的显示等。

二.

设计(实验)正文

在程序中自己进行完成的方面有:

1.闹钟到点报时

NAOZHONGPROCNEAR

MOVAL,MINUTE;将要进行调整的闹钟赋给闹钟的时间

MOVNMINUTE,AL

MOVAL,HOUR

MOVNHOUR,AL

SHI2:

MOVAL,NHOUR;将时间数字转换赋给LED显示缓冲区

MOVAH,0

MOVCL,10

DIVCL

MOVCH,AH

MOVAH,0

MOVBX,OFFSETLEDMAP

ADDBX,AX

MOVAL,[BX]

MOVLEDBUF,AL

MOVBX,OFFSETLEDMAP

MOVAL,CH

MOVAH,0

ADDBX,AX

MOVAL,[BX]

ORAL,80H

MOVLEDBUF+1,AL

MOVAL,NMINUTE

MOVAH,0

MOVCL,10

DIVCL

MOVCH,AH

MOVAH,0

MOVBX,OFFSETLEDMAP

ADDBX,AX

MOVAL,[BX]

MOVLEDBUF+2,AL

MOVBX,OFFSETLEDMAP

MOVAL,CH

MOVAH,0

ADDBX,AX

MOVAL,[BX]

ORAL,80H

MOVLEDBUF+3,AL

MOVLEDBUF+4,3FH

MOVLEDBUF+5,3FH

CALLDISPLAYLED;调用完LED显示

CALLTESTKEY;测试是否有输入,有则判断,无则继续显示JNESHI1

JMPSHI2

SHI1:

CALLGETKEY

CMPAL,0FH

JZNXIAOSHI

CMPAL,0EH

JZNFENZHONG

CMPAL,0BH

JZJEND1

NFENZHONG:

;分钟判断。

按E进行自增

INCNMinute

cmpNMinute,60

jzNt2

JMPNt3

Nt2:

movNMinute,00

Nt3:

JMPSHI2

JEND1:

JMPEND1

NXIAOSHI:

;小时。

按F进行自增

IN

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 司法考试

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

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