汇编小闹钟Word下载.docx
《汇编小闹钟Word下载.docx》由会员分享,可在线阅读,更多相关《汇编小闹钟Word下载.docx(12页珍藏版)》请在冰豆网上搜索。
3将系统实时时间与保存的时间比较,相等则响铃
四、流程图
五、源程序
datasegment
line1db'
===========AlarmClock==========='
'
$'
setdb'
*Pleaseinputtheringbelltime:
'
hdb'
*Hour:
mdb'
*Munite:
sdb'
*Second:
crfdb0ah,0ah,'
nowdb'
*Thestarttime:
'
curdb'
=current='
nhdw0
nmdw0
nsdw0
crdb0dh,0ah,'
brdb0dh,'
rindb'
*Thetimeisreach!
errdb'
*quitinput"
0"
:
line2db'
===========ClockClose==========='
line3db'
===========ClockStart==========='
dataends
;
*****************************************************************
codesegment
mainprocfar
assumecs:
code,ds:
data
start:
pushds
subax,ax
pushax
movax,data
movds,ax
输出'
movah,9
leadx,line1
int21h
calldropline
Pleaseinputtheringbelltime:
leadx,now
2ch号功能调用,取系统时间:
ch,cl,dh中分别存放时分秒
movah,2ch
calldisplayTime
calldropline
输入响铃时间
callinput
leadx,line3
若输入出错,可输入“0”退出
leadx,err
movah,1
cmpal,'
0'
jzexit
leadx,cur
实时刷新时间,并检查响铃时间是否到了
s0:
calldisplayTime
;
消除光标
movcx,2000h
movah,01h
int10h
回车刷新
leadx,br
movah,2ch
int21h
比较时
moval,ch
cbw
cmpax,nh
jnzs0
;
比较分
moval,cl
cmpax,nm
比较秒
moval,dh
cmpax,ns
calldropline
响铃
callringbell
结束输出'
leadx,line2
exit:
ret
mainendp
响铃控制
ringbellprocnear
pushbx
pushcx
leadx,rin
movbx,30000
movcx,30000
callsound
popcx
popbx
ringbellendp
发声子程序,参数为BX,CX
soundprocnear
pushdx
pushax
movdx,cx
inal,61h
andal,10101010b
trig:
xoral,2
out61h,al
movcx,bx
delay:
loopdelay
decdx
jnetrig
popax
popdx
soundendp
接收输入的时分秒,存入nh,nm,ns
inputprocnear
leadx,set
接收时
leadx,h
calltansfer
movnh,ax
接收分
leadx,m
int21h
movnm,ax
接收秒
leadx,s
movns,ax
inputendp
输出参数ax存放接受的十进制数实际大小
tansferprocnear
movax,0
subal,30h
movbl,al
movbh,al
moval,bl
movbl,10
mulbl
movbl,bh
movbh,0
addax,bx
tansferendp
displayTimeprocnear
moval,ch;
小时的值赋给al
cbw;
al扩展成ax,用做除法的被除数
callbindec
movdl,'
显示"
"
movah,02h
int21h
moval,cl;
分
cbw
callbindec
;
moval,dh;
秒
ret
displayTimeendp
bindecprocnear
pushax
pushcx
pushdx
movdx,0
movcx,10d
divcx
movbx,dx;
先保存余数
movdl,al;
显示商(即十进制二位数的十位)
ordl,30h
movah,02h
movdx,bx;
恢复余数的值(十进制二位数的个位)
adddl,30h
movah,02h
popdx
popcx
popax
ret
bindecendp
输出空行
droplineprocnear
pushax
pushdx
movah,9
leadx,cr
int21h
popdx
popax
ret
droplineendp
codeends
endstart
六、程序测试
1.输入响铃时间,选择“0”可以退出
2.current处动态刷新时间
3.时间到响铃