汇编时钟汇编计时器_第1页
汇编时钟汇编计时器_第2页
汇编时钟汇编计时器_第3页
汇编时钟汇编计时器_第4页
汇编时钟汇编计时器_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、汇编时钟 汇编计时器2011-11-30 17:29:03| 分类:编程|字号订阅data segme ntm2DB 0;分的十位m1DB O;分的个位DB :;间隔s2DB 0;秒的十位s1DB 0;秒的个位DB :;间隔ms2DB 0;百分秒位ms1DB 0;十分秒位ROWDB 0;行数data endsSTACK SEGMENTDW 16 DUP(0)STACK ENDScode segme ntassume cs:code,ds:data,SS:STACK start:1#call clall2ag: call clearcall listcall sec ondMOVAH,0BHIN

2、T21HCMPAL,00HJZagMOVAH,08HINT21Hcmpal, njnzend1;调用清全屏;调用清显示部分屏幕;调用显示;调用一秒延时;检测有键按下否;AL=0,无键按下;无键按下,转ag;有键,读键值AL#n ao: call din gshijmp ag;调用定时子程序en d1: cmpal,sjnz g1call far ptr mbjmp agg1:cmpal,1bhjnzagmov ah,4chint 21h 日期list proc n earpush axpush bxpush cxpush dxmov ah,2ahint 21h;系统功能调用,读系统日期push

3、 dx;将DX入栈mov dl,0aga in1:sub cx,03e8h;CX保存年,将CX-1000js n ext1;CX为负跳next1inc dl;否则DL+1jmp aga in1;跳至 CX-1000next1:add cx,03e8h;CX+1000 送 CXadd dl,30hmov ah,02hint 21h;显示DL,即CX的千位mov dl,0;DL清零agai n2:sub cx,0064h;将 CX-100js n ext2inc dljmp aga in2next2:add cx,0064hadd dl,30h mov ah,02h int 21hmov dl,0

4、aga in3: sub cx,OOOah js n ext3 inc dljmp aga in3next3:add cx,000ahadd dl,30h mov ah,02h int 21hadd cl,30hmov dl,clmov ah,02h int 21hmov dl,-mov ah,02h int 21hpop dxmov bl,dlmov dl,0agai n4:sub dh,000ahjs n ext4 inc dl jmp aga in4next4:add dh,000ahadd dl,30hmov ah,02h;显示DL,即CX的百位;将 CX-10;显示DL,即DX的十位

5、;显示CL的个位;显示“;弹出DX;将DL送BL;将DL清零;DH存月,将DH-10;显示DH的十位,即月的十位int 21h add dh,30h3mov dl,dhmov ah,02hint 21hmov dl,-mov ah,02hint 21h;显示DH的个位mov dl,0aga in5:sub bl,000ah js n ext5 inc dl jmp aga in5;DL存天n ext5:add bl,000ah add dl,30h mov ah,02h int 21h add bl,30h mov dl,bl mov ah,02h int 21hmov dl,mov ah,0

6、2hint 21h;显示空格 时间mov ah,2chint 21h push dxmov dl,0;系统功能调用,读系统时间a1:sub ch,000ah js n1 inc dl jmp a1;CH存小时n1:add ch,000ahadd dl,30hmov ah,02hint 21hadd ch,30hmov dl,chmov ah,02hint 21hmov dl,:mov ah,02hint 21h;显示:”mov dl,0a2:sub cl,000ah;CL 存分钟js n2 inc dljmp a2n2:add cl,000ahadd dl,30hmov ah,02hint 2

7、1hadd cl,30hmov dl,clmov ah,02hint 21hmov dl,:;显示:”mov ah,02hint 21hpop dxmov dl,05a3:sub dh,000ah;DH 存秒js n3inc dljmp a3n3:add dh,000ahadd dl,30hmov ah,02hint 21hadd dh,30hmov dl,dhmov ah,02hint 21hpop dxpop expop bxpop axretlist endp; 定时程序din gshi proe n earpush axpush bxpush expush dxcall clear;调

8、用清显示部分屏幕mov dl, imov ah,02hint 21hmov dl, nmov ah,02hint 21h#mov ax,datamov dx,axmov ah,O1hint 21hsub al,30hmov bh,almov ah,01hint 21hsub al,30hmov bl,almov dl,:mov ah,02hint 21hmov ah,01hint 21hsub al,30hmov dh,almov ah,01hint 21hsub al,30hmov dl,al;存输入数据,BHBL:DHDLpush dx; 小时的十位的判断shi10:mov ah,2chi

9、nt 21hmov dl,0dao1:sub ch,0ahjs dao2inc dljmp dao1dao2:7cmp bh,dl;判断小时的十位jnz shi10-小时的个位的判断shi:mov ah,2chdao3int 21hmov dl,0sub ch,0ahdao4:js dao4jmp dao3add ch,0ahcmp ch,bl;判断小时的个位jnz shi-分钟的十位的判断fen 10mov ah,2chint 21hdao5:mov dl,0sub cl,0ahdao6:js dao6inc dljmp dao5mov bl,dl;将DL中的分的十位送 BLpop dx;将

10、输入的DH , DL弹出cmp bl,dh;判断分的十位push dxjnz fen 10 分钟的个位判断fen:mov ah,2chint 21hmov dl,0dao7:sub cl,Oahjs dao8jmp dao7dao8:add cl,0ahpop dxcmp cl,dlpush dxjnz fenpop dxmov dl,smov ah,02hint 21hmov dl,tmov ah,02hint 21hmov dl,omov ah,02hint 21hmov dl,pmov ah,02hint 21h;定时结束,显pop dxpop cxpop bxpop axretdin

11、gshi endpSECOND PROC NEAR;判断分的个位STOP;1秒延时子程序PUSHAXPUSHBXPUSHDXMOV AH,00H9INT1AH;读计时单位ADDDX,1MOVBX,DXL1:MOV AH,00HINT1AHCMPDX,BX;满1秒?,否,继续累计JNZL1POPDXPOPBXPOPAXRETSECONDENDPclear proc n ear;save registerspush axpush bxpush cxpush dx;clear scree n;定窗口显示时钟mov ah,7;to scroll dow nward fun cti onmov al,0

12、;code to bla nk screemov bh,70h;reverse video attributemov ch,0;upper left rowmov cl,0;upper left colu mnmov dh,0;lower right rowmov dl,20;lower left colu mnint 10h;call video ROM;定位mov ch,0mov cl,24mov ah,O1hint 10hmov dh,0mov dl,0mov bh,0mov ah,02hint 10h;locate cursormov dx,0mov ah,2 ;to locate c

13、olu mnint 10h ;call video BIOS;restore registerspop dxpop cxpop bxpop axretclear endpclall2 proc n earpush axpush bxpush cxpush dxmov ah,6;to scroll up scree nmov al,0;bla nk scree nmov bh,7;bla nk linemov ch,0;upper left rowmov cl,0;upper left colu mnmov dh,24;lower right rowmov dl,79;lower left co

14、lu mnint 10h;call video BIOSpop dxpop cx11pop bxpop axretclall2 en dpmb PROC farpush axpush bxpush cxpush dxMOVAH,0;检测键盘,有键按下才开始INT16H;设置中断向量CLI;清中断标志CLD;清方向标志MOVAX,OOOOH;设置中断向量MOVDS,AXMOVSI,0020HLODSWMOVBX,AXLODSWPUSHAX;PUSHBX;MOVAX,DATA;MOVDS,AXMOVAX,OOOOH;MOVES,AX;MOVDI,0020H;MOVAX,OFFSET TIMER;S

15、TOSWMOVAX,SEG TIMER;STOSW;初始化8253MOVAL,00110110B;0计数器,工作方式3,先与最底有效字节,再写最冋有效字节OUT43H,ALMOVAX,10923;设初值OUT40H,ALMOVAL,AHOUT40H,ALINAL,21HPUSHAXMOVAL,OFCH冲断屏蔽,只对键盘irq1和电子时钟基准irqO开中断OUT21H,ALSTIcallclearall;清全屏FOREVER:callclear1;定位清屏callshow;显示秒表MOVAH,0BH;检测有键按下否?INT21HCMPAL,00H;AL=0,无键按下JZFOREVER;无键按下,

16、转LOPMOVAH,08H;有键,读键值ALINT21HCMPAL,dJZEXIT;是d则退出cmpal,m;是m则记录数据jnzgMOVAH,2MOVBH,0MOVDH,rowMOVDL,25INT10Hcallshowincrowg: cmpal,r;是r则重新开始计时jnzFOREVERmovm2,0;归零movm1,0movs2,Omovs1,Omovms2,Omovms1,Omovrow,0callclearallJMPFOREVER;显示秒表EXIT:pop dxpop cxpop bxpop axretmb ENDPshow proc n earpushaxpushbxpushc

17、xMOVBX,OFFSETm2 ;读m2首地址MOVCX,8;循环8次DISP1: MOVAL,BX;取bx对应的m2值CALLDISPCHR;显示bx15INCBX;指向下一存储单元LOOPDISP1MOVAL,0DH;回车CALLDISPCHRpopexpopbxpopaxretshow endpclear1proc n earpush ax push bx push cx push dx;clear scree n;定宽mov ah,7;to scroll up scree nmov al,0;bla nk scree nmov bh,70h;bla nk linemov ch,1;up

18、per left rowmov cl,0;upper left colu mnmov dh,0;lower right rowmov dl,7;lower left colu mnint 10h;call video BIOS;din weimov ch,0mov cl,24mov dh,rowmov dl,0mov bh,0#mov ah,02hint 10h;locate cursormov dx,0mov ah,2int 10h;to locate colu mn;call video BIOSpop dxpop cxpop bxpop ax ret clear1 endpclearall proc n earpush axpush bxpush cxpush dxmov ah,6;to scroll up scree nmov al,0;bla nk scree

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论