微机原理课程设计文档格式.docx

上传人:b****4 文档编号:17876828 上传时间:2022-12-11 格式:DOCX 页数:56 大小:108.37KB
下载 相关 举报
微机原理课程设计文档格式.docx_第1页
第1页 / 共56页
微机原理课程设计文档格式.docx_第2页
第2页 / 共56页
微机原理课程设计文档格式.docx_第3页
第3页 / 共56页
微机原理课程设计文档格式.docx_第4页
第4页 / 共56页
微机原理课程设计文档格式.docx_第5页
第5页 / 共56页
点击查看更多>>
下载资源
资源描述

微机原理课程设计文档格式.docx

《微机原理课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计文档格式.docx(56页珍藏版)》请在冰豆网上搜索。

微机原理课程设计文档格式.docx

还有就是如何通过时钟中断调用来确定表的时针、分针和秒针的位置。

设计中遇到的问题和解决的步骤、方法:

遇到问题:

在课程设计中遇到的最大的困难是如何产生中断,对中断向量表的装载还比较模糊,对中断的初始化、具体设置、中断的返回还不是很清楚,最主要如何是通过时钟中断调用来确定表的时针、分针、和秒针的位置,并通过条用相关子程序画在屏幕上开始是不是很明白。

解决步骤、方法:

在此过程中我认真翻阅了课本,重点对课本《中断》这一章做了详细的研究和学习,同时还借阅了王爽的《汇编语言》一书,特别是对其中的一些常用的中断进行了全面的学习和深入的研究,基本上弄懂了各个中断的作用和应用,通过对这些中断的学习,使我对中断有了更深一步的认识,因而在相关程序的设计方面就容易了很多。

设计结果:

程序设计完成后,通过编译器编译成可执行文件.exe后,双击即可运行此指针显示的程序,同时屏幕上会出现一个时钟表盘,表盘上会显示相应的系统时间,同时在程序运行过程中,按C键可改变钟表界面各个部分的颜色;

按B键可扩大表盘;

按S键可听简单的音乐;

按Q建退出程序。

附录1:

程序运行截图(2张)

附录2:

源程序列表

extrnmusic:

far,gensound:

far

;

******************************************************

*堆栈段

.286;

STACK_SEGSEGMENTSTACK

STACK_BUFDW120DUP(?

TOPEQU$-STACK_BUF

STACK_SEGENDS

*数据段

DATA_SEGSEGMENTPARA

------------------------------------------------------

TODO:

数据的定义及存储器的分配

ts1DB0

quitbufDB'

welcomeyoutorunthisprogramme.'

quitbuf2DB'

C:

changecolor;

B:

extendthecolck;

S:

reducetheclock'

quitbuf3DB'

pressetosound;

Pressqtoquit!

'

sigleDB80h

absxDW0

absyDW0

sutDW0

erroybzDB0

r0DW90

x0DW320

y0DW245

count0db0

count_hourDB11

count_minuteDB11

yuanxinxDW0

yuanxinyDW0

sDB0

s2DB0

s3DB0

hourDW0

hour2DW0

minuteDW0

minute2DW0

secondDB0

second2DB0

sin_xDW0

sin_xxDW0

xDW0

yDW0

x1DW0

xminyDW0

yminxDW0

xmaxDW0

ymaxDW0

yminDW0

xminDW0

sjx_xminyDW0

sjx_yminxDW0

sjx_xmaxDW0

sjx_ymaxDW0

sjx_yminDW0

sjx_xminDW0

yuanxDW0

yuanyDW0

y1DW0

x2DW0

y2DW0

x3DW0

y3DW0

DIancolorDB0

colorDB2

color_hourDB2

color_minDB6

color_secondDB9

color4DB10

color5DB11

color6DB12

backgroundcolorDB1

page1DB0

y2y1DW0

x2x1DW0

sjx_y2y1DW0

sjx_x2x1DW0

-------------------------------

DATA_SEGENDS

*代码段

CODE_SEGSEGMENTPARA

MAINPROCFAR

ASSUMECS:

CODE_SEG,DS:

DATA_SEG

ASSUMESS:

STACK_SEG

START:

MOVAX,STACK_SEG

MOVSS,AX

MOVSP,TOP

MOVAX,DATA_SEG

MOVDS,AX

从这里开始您的代码

beg:

MOVAX,0012h

INT10h

MOVDX,0010h

CALLb1002

LEABP,quitbuf

CALLmsg

MOVDX,010ah

LEABP,quitbuf2

MOVDX,020ah

LEABP,quitbuf3

beg2:

CALLskin

CALLskin2

CALLskin3

CALLCLk

MOVsecond,DH

MOVsecond2,DH

MOVcount_minute,11

CALLminute_lin

XORDX,DX

MOVAX,minute2

MOVCX,12

DIVCX

MOVCX,AX;

minurte2/12

POPAX

ADDAX,CX

MOVhour2,AX

MOVcount_hour,11

CALLhour_lin

MOVDL,DH

CALLbcd2

XORAH,AH

MOVCL,12

DIVCL

MOVcount_minute,AH;

second%12初始值

DECcount_minute

XORDX,DX

DIVCX;

minurte2%12

MOVcount_hour,DL

DECcount_hour

INCsecond2

kk3:

CLI

CALLsecond_lin

STI

JMPks

ks:

MOVAH,1

INT16h

JZkk3

MOVAH,8

INT21h

CMPAL,'

q'

JEquit

b'

JECHange_rb

s'

JECHange_rs

c'

JECHange_color

cmpal,'

e'

jea0

JMPkk3

CHange_rs:

CMPr0,190

JAks

ADDr0,5

JMPtobeg2

CHange_rb:

CMPr0,60

JBks

SUBr0,5

CHange_color:

LEASI,color_hour

MOVCX,6

CHange_kk1:

MOVAL,[SI]

INCAL

CMPAL,15

JCCHange_color_kk2

MOVAL,1

CHange_color_kk2:

MOV[SI],AL

INCSI

LOOPCHange_kk1

JMPtobeg2

a0:

callmusic

tobeg2:

CALLCLear

JMPbeg2

quit:

MOVAX,4C00H

INT21H

*******************************

hour_linPROCNEAR

PUSHa

CMPcount_hour,11

JBtohour_yl

JMPhour_lin_next

tohour_yl:

MOVSIgle,3

JMPhour_yl

hour_lin_next:

MOVcount_hour,0

MOVSIgle,5

MOVDL,CH

CMPAL,12

JBhour_kk1

SUBAL,12

hour_kk1:

MOVCL,30

MULCL

PUSHAX

MOVCX,AX

MOVhour2,AX;

擦掉

MOVColor,0

MOVAX,hour

MOVBX,r0

ADDBX,20

CALLrenovate

MOVDX,yuanx

MOVx3,DX

MOVDX,yuany

MOVy3,DX

ADDAX,270

ADDBX,400;

90

CALLrenovate

MOVDX,yuanx;

擦掉

MOVx2,DX

MOVy2,DX

MOVDX,x0

MOVx1,DX

MOVDX,y0

MOVy1,DX

CALLsjx

ADDAX,180

SUBBX,100

MOVy3,DX;

CALLsjx

MOVSIgle,4

************************;

重写

hour_yl:

MOVAL,color_hour

MOVcolor,AL

MOVAX,hour2

ADDBX,70

ADDAX,90

ADDBX,600;

MOVy2,DX

;

CALLsjxx

CALLsjxy

MOVx3,DX

重写

MOVCX,hour2

MOVhour,CX

hour_quit:

POPa

RET

hour_linENDP

********************************

minute_linPROCNEAR

CMPcount_minute,11

JBtominute_yl

仍是原来的一个

JMPminute_lin_next

tominute_yl:

MOVSIgle,0

JMPminute_yl

minute_lin_next:

INCcount_hour

MOVDL,CL

CALLbcd2;

bcd->

16

MOVCL,6

MULCL;

al*cl

MOVDL,second2

CALLbcd2

MOVCL,AL

second2/12

MOVCH,0

MOVminute2,AX

AAAa1:

MOVSIgle,2

MOVAX,minute

ADDBX,10

ADDAX,268

ADDBX,800

MOVDX,y0

SUBBX,200

inccount0

cmpcount0,5

jnzminute_yl

movcount0,0

callmusic

***************************重写

minute_yl:

MOVsigle,1

MOVAL,color_min

ADDBX,30

ADDBX,900

MOVCX,minute2

MOVminute,CX

CALLhour_lin

minute_kk1:

minute_quit:

minute_linENDP

******************indh秒数*********************

second_linPROCNEAR

CMPsecond2,DH

JEto_second_quit

JMPsecond_lin_next

to_second_quit:

JMPsecond_quit

second_lin_next:

MOVSIgle,80h

MOVsecond2,DH

MOVColor,0

MOVDL,second;

erase

MOVAH,0

ADDBX,300

CALLlinex

CALLliney

MOVAL,color_second

ADDBX,300

CALLliney

CALLyuanxin

MOVsecond,DL

MOVCL,second2

MOVsecond,CL

JEsecond_kk1

INCcount_minute

JMPsecond_quit

second_kk1:

MOVcount_minute,0

second_quit:

second_linENDP

******bxbbx*********inax度数***bx长度,*********

OUTx2->

ax,y2->

dx;

**

renovatePROCNEAR

CALLSIn

MOVDX,0

MOVCX,BX

CMPSI,1

JEhjian

ADDAX,y0

JMPrenovate_kk1

hjian:

MOVCX,y0

SUBCX,AX

MOVAX,CX

renovate_kk1:

MOVyuany,AX

POPAX

CALLcos

JEhjian2

ADDAX,x0

JMPrenovate_kk2

hjian2:

MOVCX,x0

renovate_kk2:

MOVyuanx,AX

POPa

renovateENDP

**************************

ClkPROC

MOVAH,2

INT1ah

CLkENDP

*****************cosxinaxoutax,si符号******************

cosPROCNEAR

ADDAX,90

cos_kk1:

CALLSIn

cosENDP

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

当前位置:首页 > 求职职场 > 简历

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

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