计算机综合实践.docx
《计算机综合实践.docx》由会员分享,可在线阅读,更多相关《计算机综合实践.docx(10页珍藏版)》请在冰豆网上搜索。
计算机综合实践
计算机综合实践
报告
专业电气工程及其自动化
班级1103
姓名王学妮
学号aDH1111t0044
实验1实时时钟程序设计
一、实验目的
1.加深对课堂讲授内容的理解,掌握编程语言的语法规则。
2.熟悉所用的计算机系统的操作方法,了解和熟悉程序开发环境。
3.学习上机调试程序的方法和技巧,提高编程能力。
二、实验内容
设计一个时钟显示程序,要求利用定时器0的定时中断记录时间。
三、基本设备与器材配置
通用微型计算机一台。
软件环境:
1.操作系统:
DOS、Windowsxp
2.语言环境:
Debug调试程序、MASM宏汇编。
四、程序清单
assumecs:
code
codesegment
start:
;清屏
movah,6;
moval,0;
movch,0
movcl,0;
movdh,24
movdl,79
movbh,7
int10h
l:
;年
moval,9
movsi,0
calls
movbyteptres:
[160*12+2*40+4],'/'
;月
moval,8
movsi,6
calls
movbyteptres:
[160*12+2*40+10],'/'
;日
moval,7
movsi,12
calls
movbyteptres:
[160*12+2*40+16],''
;取时数并送入显存
moval,4
movsi,18
calls
movbyteptres:
[160*12+2*40+22],':
'
;取分数并送入显存
moval,2
movsi,24
calls
movbyteptres:
[160*12+2*40+28],':
'
;取秒数并送入显存
moval,0
movsi,30
calls
jmpl
movax,4c00h
int21h
;*******************子程序******************
;名称:
s
;作用:
取出BCD码并送入显存
;入参:
al为单元数,si为显存偏移地址变址
;*******************************************
s:
pushax
pushbx
pushsi
out70h,al
inal,71h
movcl,4
movah,al
shrah,cl
andal,00001111b
addal,30h
addah,30h
movbx,0b800h
moves,bx
movbx,160*12+2*40
moves:
[bx+si],ah
moves:
[bx+si+2],al
popsi
popbx
popax
ret
codeends
endstart
四、程序运行结果
实验28255并行接口键盘程序设计
一、实验目的
1.加深对课堂讲授内容的理解,掌握编程语言的语法规则。
2.熟悉所用的计算机系统的操作方法,了解和熟悉程序开发环境。
3.学习上机调试程序的方法和技巧,提高编程能力。
二、实验内容
利用09H型中断设计一个自己的键盘中断服务程序,程序设计应考虑在退出时不破坏原有的设置。
三、基本设备与器材配置
通用微型计算机一台。
软件环境:
1.操作系统:
DOS、Windowsxp
2.语言环境:
Debug调试程序、MASM宏汇编。
四、程序清单
dsegsegment
addr_pointdw?
countdw?
bufferdb20hdup('')
promptdb'Pleaseenterthecharacters:
'
db0dh,0ah,'$'
messagedb'bufferoverflow',0dh,0ah
save_ip9dw?
save_cs9dw?
dsegends
csegsegment
assumecs:
cseg,ds:
dseg
mainprocfar
start:
pushdx
subax,ax
pushax
movax,dseg
movds,ax
movax,offsetbuffer
movaddr_point,ax
movcount,0
moval,09h
movah,35h
int21h;saveinterruptvectoroftype09h
movsave_ip9,bx
movsave_cs9,es
movdx,offsetkbint
pushds
movax,segkbint
movds,ax
moval,09h
movah,25h
int21h
popds;setinterruptvectorof9
inal,21h
andal,0fdh
out21h,al
sti
jmp$
ret
mainendp
;keyboardinterruptserver
kbintprocnear
pushax
pushbx
cld
inal,60h;readinthechar
pushax
inal,61h
movah,al
oral,80h
out61h,al
xchgah,al
out61h,al
popax
testal,80h;ispressorreleasecode?
jnzcont
movbx,addr_point
mov[bx],al
calldisp
incbx
inccount
movaddr_point,bx
check:
cmpcount,32
jbcont
inal,21h
oral,02h
cont:
cli
moval,20h
out20h,al
popbx
popax
iret
kbintendp
;diplaycharcode
dispprocnear
pushax
pushcx
pushdx
movch,2
movcl,4
nextb:
rolal,cl
pushax
movdl,al
anddl,0fh
ordl,30h
cmpdl,3ah
jldispit
adddl,7h
dispit:
movah,2
int21h
popax
decch
jnznextb
movah,2
movdl,','
int21h
popdx
popcx
popax
ret
dispendp
csegends
endstart
三、程序运行结果
程序运行后,将会修改09H中断