
在DOS环境中显示右上角的系统时间
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文介绍了如何在DOS环境下编写或使用一个简单的批处理脚本,以实现在屏幕右上角持续更新并显示当前系统时间的功能。
CODE SEGMENT ASSUME CS:CODE START: JMP NEXT BUFF DW 0 BUFF1 DW 2 DUP(0) MAIN: PUSHF CALL DWORD PTR CS:BUFF1 PUSH AX PUSH BX PUSH CX PUSH DX XOR BH,BH MOV AH,3 INT 10H ;读光标位置 MOV CS:BUFF,DX MOV AH,2 XOR BH,BH MOV DX,47H INT 10H ;置光标位置 MOV AH,2 INT 1AH ;读系统时间 PUSH DX PUSH CX POP BX PUSH BX CALL SHOW1 CALL SHOW2 POP BX XCHG BH,BL CALL SHOW1 CALL SHOW2 POP BX CALL SHOW1 MOV DX,CS:BUFF MOV AH,2 XOR BH,BH INT 10H ;置光标位置 POP DX POP CX POP BX POP AX IRET ;中断返回
;以下为将系统时间转化为对应的ASCLL码显示的程序
SHOW1 PROC NEAR
PUSH BX
MOV CL,4
MOV AL,BH
SHR AL,CL
ADD AL,30H ;转换为ASCLL码
CALL SHOW
CALL XJB
POP BX
MOV AL,BH
AND AL,0FH
ADD AL,30H
CALL SHOW
CALL XJB
RET
SHOW1 ENDP
;以下为显示: 符号的程序
SHOW2 PROC NEAR
MOV AL,:
CALL SHOW
CALL XJB
RET
SHOW2 ENDP
;以下是对光标的处理的程序
XJB 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
XJB ENDP
;以下是将AL里的内容显示的程序
SHOW PROC NEAR
PUSH AX
PUSH BX
PUSH CX
MOV AH,09H
MOV BX,2FH
MOV CX,1
INT 10H ;在光标位置显示字及其属性
POP CX
POP BX
POP AX
RET
SHOW ENDP
;以下为取中断,保存中断,设置新的这段类型的程序
NEXT:
PUSH CS
POP DS
MOV AX,351CH ;取中断向量
INT 21H
MOV BUFF1,BX ;保存偏移地址
MOV BX,ES ;保存段地址
MOV BUFF1+2,BX
MOV DX,OFFSET MAIN
MOV AL,1CH ; 中断类型放日AL
MOV AH,25H ; 设置中断向量的功能调用
INT 21H ;改变中断向量
LEA DX,NEXT
SUB DX,OFFSET START
MOV CL,4
SHR DX,CL
ADD DX,11H
MOV AX,3100H
INT 21H
CODE ENDS
END START
全部评论 (0)


