?? 源碼.asm
字號:
code segment ;代碼段
assume cs:code,ds:code
start:
jmp go
oldcur dw ?
OLD1C DW 2 DUP(?)
NEWINT1C:
PUSHF ;標(biāo)志進(jìn)棧
CALL DWORD PTR CS:OLD1C
push ax
PUSH BX
PUSH CX
PUSH DX
XOR BH,BH ;異或,清零
MOV AH,3 ;讀取光標(biāo)位置
INT 10H
MOV CS:OLDCUR,DX
MOV AH,2 ;2號功能調(diào)用,置光標(biāo)位置
xor bh,bh
MOV DX,45h
INT 10H
MOV AH,2 ;讀取系統(tǒng)時鐘 出口參數(shù)分別CH:CL:DH
INT 1AH
PUSH DX
PUSH CX
POP BX
PUSH BX
CALL SHOWBYTE ;調(diào)用 SHOWBYTE,顯示小時 (轉(zhuǎn)換成ASC碼輸出)
CALL SHOWCOLON ;調(diào)用 SHOWCOLON 顯示:
POP BX
XCHG BH,BL ;數(shù)據(jù)交換
CALL SHOWBYTE ; 顯示分鐘 (轉(zhuǎn)換成ASC碼輸出)
CALL SHOWCOLON ; 顯示 :
POP BX
CALL SHOWBYTE ;顯示秒
MOV DX,CS:OLDCUR ;保存原來光標(biāo)位置
MOV AH,2 ;恢復(fù)原光標(biāo)位置
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 ;bx 進(jìn)棧,高4位放cl中,al 右移4位
ADD AL,30H ;轉(zhuǎn)換成 ASC碼
CALL SHOW ;調(diào) SHOW
CALL CURMOVE ;調(diào)CURMOVE (光標(biāo)后移一個位置)
POP BX
MOV AL,BH
AND AL,0FH ;與,屏蔽高4位,顯示低4位
ADD AL,30H ;數(shù)值轉(zhuǎn)換成ASC碼
CALL SHOW ;顯示
CALL CURMOVE ;光標(biāo)后移
RET
SHOWBYTE ENDP
SHOWCOLON PROC NEAR ;(:顯示)
MOV AL,':' ; : 放入AL中
CALL SHOW
CALL CURMOVE
RET
SHOWCOLON ENDP
CURMOVE PROC NEAR ;光標(biāo)后移一個位置
PUSH AX
PUSH BX
PUSH CX
PUSH DX
MOV AH,3 ;INT10 3號功能調(diào)用讀光標(biāo)位置
MOV BH,0 ;設(shè)置顯示方式
INT 10H
INC DL ;加1指令
MOV AH,2 ;置光標(biāo)位置
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,2fh ;INT10 的1號功能調(diào)用,顯示光標(biāo)類型字符顏色屬性
MOV CX,1
INT 10H
POP CX
POP BX
POP AX
RET ;中斷返回
SHOW ENDP
GO:
PUSH CS
POP DS
MOV Ah,35H ;讀取中斷向量,出口參數(shù)BX
mov AL,1CH
INT 21H ;段地址放 ES,偏移地址放BX
MOV OLD1C,BX ;保存偏移地址
MOV BX,ES ;保存段地址
MOV OLD1C+2,BX
MOV DX,OFFSET NEWINT1C
MOV Ah,25H ;設(shè)置新的中斷向量 ds:dx al=中斷類型號
MOV AL,1CH
INT 21H
MOV DX,OFFSET GO ;定義GO的偏移地址
SUB DX,OFFSET START
MOV AH,07H ;鍵盤接收字符,07號調(diào)用無回顯
INT 21H
CMP AL,0DH ;與輸入回車比較,相等跳轉(zhuǎn)至clear(清屏)
JE CLEAR
MOV AX,31H ;終止并駐留
INT 21H
clear:
MOV AH,0FH ;取當(dāng)前顯示方式
INT 10H
MOV AH,00H ;設(shè)置顯示方式
INT 10h
MOV AH,4CH ;返回DOS
INT 21H
CODE ENDS
END START
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -