汇编显示时钟已调试通过Word文档格式.docx
《汇编显示时钟已调试通过Word文档格式.docx》由会员分享,可在线阅读,更多相关《汇编显示时钟已调试通过Word文档格式.docx(47页珍藏版)》请在冰豆网上搜索。
absyDW0
r0DW100
x0DW480
y0DW356
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
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;
入口DX-光标定位
LEABP,quitbuf;
取buff有效的地址
MOVDX,BP
MOVAH,9
INT21H
beg2:
CALLskin;
数字加圆
CALLskin2;
12根
CALLCLk;
设置时间计数器
MOVsecond,DH
MOVsecond2,DH
MOVcount_minute,11
CALLminute_lin;
分针
XORDX,DX;
逻辑异或
MOVAX,minute2
MOVCX,12
DIVCX
MOVCX,AX;
minute2/12
POPAX
ADDAX,CX
MOVhour2,AX
MOVcount_hour,11
CALLhour_lin;
时针
CALLCLk
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;
条件转移,zf=1转移
MOVAH,8
INT21h
CMPAL,20H;
空格退出
JEquit;
条件转移,zf=1转移
JMPkk3
quit:
MOVAX,4C00H
INT21H
*************************************
hour_linPROCNEAR
PUSHa;
帮同用寄存器ax-dx压栈
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
(minurte2)/12
MOVhour2,AX;
擦掉
MOVColor,0
MOVAX,hour
MOVBX,r0
ADDBX,20
CALLrenovate
MOVDX,yuanx
MOVx3,DX
MOVDX,yuany
MOVy3,DX
ADDAX,270
ADDBX,1000;
时针的宽度数值越大越细
CALLrenovate
MOVDX,yuanx;
擦掉
MOVx2,DX
MOVy2,DX
MOVDX,x0
MOVx1,DX
MOVDX,y0;
MOVy1,DX
CALLsjx;
时间x
ADDAX,180
SUBBX,100
MOVy3,DX;
CALLsjx
MOVSIgle,4
***************************;
重写
hour_yl:
MOVAL,color_hour
MOVcolor,AL
MOVAX,hour2
ADDBX,70
ADDAX,90
ADDBX,1200;
MOVy2,DX;
重写
CALLsjxx
CALLsjxy
MOVx3,DX;
CALLsjx
MOVCX,hour2
MOVhour,CX
hour_quit:
POPa
RET
hour_linENDP
********************************
minute_linPROCNEAR
PUSHa
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
XORAH,AH
DIVCL
MOVCL,AL;
second2/12
MOVCH,0
MOVminute2,AX
AAAa1:
MOVSIgle,2
MOVAX,minute
ADDBX,10
MOVy3,D