?? shizhong.asm
字號:
DATA SEGMENT ;設置數據段
BUF1 DB 'THE SYSTERM TIME NOW IS : $'
BUF5 DB ' ! best wishes to you !$'
BUF6 DB ' ^^^-----^^^ $'
BUF7 DB ' 00 00 $'
BUF8 DB ' @ $'
BUF9 DB ' (vvv)$'
BUF10 DB 'wellcome to my design of electrical clock !$'
BUF3 DB 'CLASS:jsj06-4$'
BUF4 DB 'NAME:ztlong$'
BUF2 DB 10
DB 10 DUP(?)
DATA ENDS
STACK SEGMENT STACK ;設置堆棧段
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT ;設置代碼段
ASSUME CS:CODE,DS:DATA,SS:STACK
CURSOR MACRO ROW,CLM ;設置光標位置
MOV AH,2
MOV BH,0
MOV DH,ROW
MOV DL,CLM
INT 10H
ENDM
WIN MACRO ROWL,CLML,ROWR,CLMR,COLOR ;設置窗口,位置,顏色
MOV AH,6
MOV AL,0
MOV CH,ROWL
MOV CL,CLML
MOV DH,ROWR
MOV DL,CLMR
MOV BH,COLOR
INT 10H
ENDM
ASCBCD MACRO REG
INC BX
INC BX
MOV REG,[BX]
MOV CL,4
SHL REG,CL
INC BX
MOV AL,[BX]
AND AL,0FH
OR REG,AL
ENDM
BCDASC MACRO REG
INC BX
INC BX
MOV AL,REG
MOV CL,4
SHR AL,CL
OR AL,30H
MOV [BX],AL
INC BX
MOV AL,REG
AND AL,0FH
OR AL,30H
MOV [BX],AL
ENDM
INCBCD MACRO REG,COUNT ;BCD數加1
MOV AL,REG
INC AL
DAA
MOV REG,AL
CMP AL,COUNT
JNZ DISPY
MOV REG,0
ENDM
STRDSPY MACRO ADRS
LEA DX,ADRS
MOV AH,9
INT 21H
ENDM
CLOCK PROC FAR
START: PUSH DS ;顯示字符串
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
WIN 0,0,24,79,7
WIN 6,9,18,70,01000001B ;設置窗口
CURSOR 6,25 ;設置光標
STRDSPY BUF5 ;顯示字符串
CURSOR 7,25 ;設置光標
STRDSPY BUF6
CURSOR 8,25
STRDSPY BUF7
CURSOR 9,25
STRDSPY BUF8
CURSOR 10,25
STRDSPY BUF9
CURSOR 11,25
STRDSPY BUF10
CURSOR 6,9
STRDSPY BUF3
CURSOR 7,9
STRDSPY BUF4
CURSOR 14,32
STRDSPY BUF1
CURSOR 15,36
LEA DX,BUF2
MOV AH,0AH
INT 21H ;從鍵盤接收當前時間
LEA BX, BUF2
ASCBCD CH ;小時值ASCII到BCD ;存CH
ASCBCD DH ;分值ASCII到BCD;存DH
ASCBCD DL ;秒值ASCII到BCD;存DL
TIMER: CALL DELY ;延時1秒
INCBCD DL,60H ;(DL)+1,并判;大于等于60?
INCBCD DH,60H ;(DH)+1,并判 ;大于等于60?
INCBCD CH,24H ;(CH)+1,并判;大于等于60?
DISPY: LEA BX,BUF2
BCDASC CH ;時值BCD轉到ASCII
BCDASC DH ;分值BCD轉到ASCII
BCDASC DL ;秒值BCD轉到ASCII
INC BX
MOV AL,'$'
MOV [BX],AL
PUSH DX
CURSOR 15,36 ;設置光標
STRDSPY BUF2+2 ;顯示時,分,秒值
POP DX
MOV AH,01H
INT 16H
CMP AL,1BH
JZ X
XOR AL,AL
JMP TIMER
X:MOV AH,4CH
INT 21H
RET
DELY PROC
PUSH CX
PUSH CX
MOV CX,4600H
X1:
X2: DEC CX
JNE X2
DEC AX
JNE X1
POP AX
POP CX
RET
DELY ENDP
CLOCK ENDP
CODE ENDS
END START
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -