[用汇编语言怎么实现时钟的实时显示请各位帮忙!];用汇编语言怎么实现时钟的实时显示,请各位帮忙!!! ; ;在右上角显示时钟,按任一键结束 ;用MASM5.0编译通过. data segment HH DB 0,0,':' MM DB 0,0,':' SS1 DB 0,0 data ends code...+阅读
STACK1 SEGMENT STACK DW 200 DUP (?) STACK1 ENDS DATA SEGMENT SPACE DB 1000 DUP (' ') PATTERN DB 6 DUP (' '),0C9H,26 DUP (0CDH),0BBH,6 DUP (' ') DB 6 DUP (' '),0BAH,26 DUP (20H),0BAH,6 DUP (' ') DB 6 DUP (' '),0C8H,26 DUP (0CDH),0BCH,6 DUP (' ') DBUFFER DB 8 DUP (':'),12 DUP (' ') DBUFFER1 DB 20 DUP (' ') STR1 DB 0DH,0AH, 'PLEASE INPUT DATE(D) OR TIME(T) OR QUIT(Q): $' DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK1 START: MOV AX,0001H ;设置显示方式为40*25彩色文本方式 INT 10H MOV AX,DATA MOV DS,AX MOV ES,AX MOV BP,OFFSET SPACE MOV DX,0B00H MOV CX,1000 MOV BX,0040H MOV AX,1300H INT 10H MOV BP,OFFSET PATTERN ;显示矩形条 MOV DX,0B00H MOV CX,120 MOV BX,004EH MOV AX,1301H INT 10H LEA DX,STR1 ;显示提示信息 MOV AH,9 INT 21H MOV AH,1 ;从键盘输入单个字符 INT 21H CMP AL,44H ;AL='D'? JNE A CALL DATE ;显示系统日期 A: CMP AL,54H ;AL='T'? JNE B CALL TIME ;显示系统时间 B: CMP AL,51H ;AL='Q'? JNE START MOV AH,4CH ;返回dos状态 INT 21H DATE PROC NEAR ;显示日期子程序 dis:MOV AH,2AH ;取日期 INT 21H MOV SI,0 MOV AX,CX MOV BX,100 DIV BL MOV BL,AH CALL BCDASC1 ;日期数值转换成相应的ASCII码字符 MOV AL,BL CALL BCDASC1 INC SI MOV AL,DH CALL BCDASC1 INC SI MOV AL,DL CALL BCDASC1 MOV BP,OFFSET DBUFFER1 MOV DX,0C0DH MOV CX,20 MOV BX,004EH MOV AX,1301H INT 10H MOV AH,02H ;设置光标位置 MOV DX,0300H MOV BH,0 INT 10H MOV BX,0018H REPEA: MOV CX,0FFFFH ;延时 REPEAT:LOOP REPEAT DEC BX JNZ REPEA MOV AH,01H ;读键盘缓冲区字符到AL寄存器 INT 16H JE dis JMP START MOV AX,4C00H INT 21H RET DATE ENDP TIME PROC NEAR ;显示时间子程序 DISPLAY1:MOV SI,0 MOV BX,100 DIV BL MOV AH,2CH ;取时间 INT 21H MOV AL,CH CALL BCDASC ;将时间数值转换成ASCII码字符 INC SI MOV AL,CL CALL BCDASC INC SI MOV AL,DH CALL BCDASC MOV BP,OFFSET DBUFFER MOV DX,0C0DH MOV CX,20 MOV BX,004EH MOV AX,1301H INT 10H MOV AH,02H MOV DX,0300H MOV BH,0 INT 10H MOV BX,0018H RE: MOV CX,0FFFFH REA: LOOP REA DEC BX JNZ RE MOV AH,01H INT 16H JE DISPLAY1 JMP START MOV AX,4C00H INT 21H RET TIME ENDP BCDASC PROC NEAR ;时间数值转换成ASCII码字符子程序 PUSH BX CBW MOV BL,10 DIV BL ADD AL,'0' MOV DBUFFER[SI],AL INC SI ADD AH,'0' MOV DBUFFER[SI],AH INC SI POP BX RET BCDASC ENDP BCDASC1 PROC NEAR ;日期数值转换成ASCII码字符子程序 PUSH BX CBW MOV BL,10 DIV BL ADD AL,'0' MOV DBUFFER1[SI],AL INC SI ADD AH,'0' MOV DBUFFER1[SI],AH INC SI POP BX RET BCDASC1 ENDP CODE ENDS END START cursor equ 45H attrib equ 2fh code segment assume cs:code,ds:code start: jmp go oldcur dw ? OLD1C DW 2 DUP(?) NEWINT1C: PUSHF CALL DWORD PTR CS:OLD1C push ax PUSH BX PUSH CX PUSH DX XOR BH,BH MOV AH,3 INT 10H MOV CS:OLDCUR,DX MOV AH,2 xor bh,bh MOV DX,CURSOR INT 10H MOV AH,2 ;读取系统时钟 INT 1AH PUSH DX PUSH CX POP BX PUSH BX CALL SHOWBYTE CALL SHOWCOLON POP BX XCHG BH,BL CALL SHOWBYTE CALL SHOWCOLON POP BX CALL SHOWBYTE MOV DX,CS:OLDCUR MOV AH,2 XOR BH,BH INT 10H POP DX POP CX POP BX POP AX IRET SHOWBYTE PROC NEAR PUSH BX MOV CL,4 MOV AL,BH SHR AL,CL ADD AL,30H CALL SHOW CALL CURMOVE POP BX MOV AL,BH AND AL,0FH ADD AL,30H CALL SHOW CALL CURMOVE RET SHOWBYTE ENDP SHOWCOLON PROC NEAR MOV AL,':' CALL SHOW CALL CURMOVE RET SHOWCOLON ENDP CURMOVE PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV AH,3 MOV BH,0 INT 10H INC DL MOV AH,2 INT 10H POP DX POP CX POP BX POP AX RET CURMOVE ENDP SHOW PROC NEAR PUSH AX PUSH BX PUSH CX MOV AH,09H MOV BX,attrib MOV CX,1 INT 10H POP CX POP BX POP AX RET SHOW ENDP GO: PUSH CS POP DS MOV AX,351CH ;取中断向量 INT 21H MOV OLD1C,BX ;保存原中断向量 MOV BX,ES MOV OLD1C+2,BX MOV DX,OFFSET NEWINT1C ;置新的中断向量 MOV AX,251CH INT 21H MOV DX,OFFSET GO SUB DX,OFFSET START MOV CL,4 SHR DX,CL ADD DX,11H MOV AX,3100H ;结束并驻留...
以下为关联文档:
幼儿园渗透式领域课程大班数学时钟的做法教学目标: 1.了解钟面的主要结构,知道时针、分针的运转规律。 2.学会看整点和半点。 3.增强时间观念,体验游戏的快乐。 教学准备: 经验准备:对认识时钟已有一定的知识经验,并了解...
幼儿大班的时钟教案怎么写几点怎么写幼儿园大班关于时钟的数学教案 【活动目标】 1、感受时钟在人们生活中的用途。 2、初步了解时钟的表面结构及时针、分针的运转规律,学会看整点。 3、在活动中,激发幼儿观察周...
认识时钟教案需要幼儿注意地事项有哪些教学目标: 1、了解时钟的表面结构及时针、分针的运转、规律,学会看整点、半点。 2 、发展孩子的逻辑思维能力。 3、教育孩子珍惜时间,养成按时作息的好习惯。 教学准备: 1、实物...
幼儿园美工教案时钟滴答滴活动设计背景 幼儿园大班的小朋友马上要上小学了,为培养良好的作息习惯做准备。 活动目标 1、通过自己动手操作,更好的认识时钟。 2、学习认识整点和半点。 教学重点、难点 能...
高手电子日历时钟系统程序汇编语言data segment db "00/00/00 00:00:00",'$' data ends codesg segment assume cs:codesg,ds:data start: mov ax,data mov ds,ax mov cx,6 mov bx,0 mov ah,0 mov al,9 s: push...
用c语言编电子时钟#include <graphics.h> #include <math.h> #include <dos.h> #include <conio.h> #define PI 3.1415926 /*定义常量*/ #define mid_x 240 /*定义常量*/ #define mid_y 240 /...
用汇编语言做单片机时钟显示基于c8051f020单片机最小系统的实时时钟显示程序c8051f020 FYD12864-0402B LCD显示,按键电子时钟//#include#include#include#define uchar unsigned charvoid lcd_ini();voi...
求一个用汇编语言编写时钟的程序只要能在pc机上显示时分秒就行1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 5...
如何用微机汇编语言编写时钟程序assume cs:codesg,ds:data data segment db "00/00/00 00:00:00",'$' data ends codesg segment start: mov ax,data mov ds,ax mov cx,6 mov bx,0 mov ah,0 mov al,9 s: push...