汇编语言程序设计:[14]系统时间显示
1、打开masm汇编编译程序,新建一个masm源文件脚本。
DATAS SEGMENT
;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
![汇编语言程序设计:[14]系统时间显示](https://exp-picture.cdn.bcebos.com/b1454a1bd10ff226d8ce2aba9c99e92abbb8a4e8.jpg)
![汇编语言程序设计:[14]系统时间显示](https://exp-picture.cdn.bcebos.com/430174fec314f1c54bba5a753c27ac5307889de8.jpg)
2、在正文中输入我们的程序代码,并将文件命名为xitongshijian.asm
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 ;结束并驻留
INT 21H
CODE ENDS
END START
3、运行我们编辑的文件,把生成的文件放到f盘 进入dos界面 windows +r 输入 cmd 而后运行这个程序 可以看到本机的系统时间了一直变化
显示系统时间的程序,运行时,在屏幕的右上角将以“时:分:秒”的形式显示本机系统的时间。该程序只能在DOS下运行。
![汇编语言程序设计:[14]系统时间显示](https://exp-picture.cdn.bcebos.com/dda98e4800fc77f7715a4494c8715fdb372090e8.jpg)
![汇编语言程序设计:[14]系统时间显示](https://exp-picture.cdn.bcebos.com/b87bd38920c5260f7a61c63ed2de4507890189e8.jpg)
![汇编语言程序设计:[14]系统时间显示](https://exp-picture.cdn.bcebos.com/3bcdb808a50f94fcadd8807a4cf88a775cddfce8.jpg)
![汇编语言程序设计:[14]系统时间显示](https://exp-picture.cdn.bcebos.com/e6ae36066b0192dd3a15ad471a87031c98c0f0e8.jpg)
![汇编语言程序设计:[14]系统时间显示](https://exp-picture.cdn.bcebos.com/a9338a1fbee434dae50b5197f271fe1d97d8e4e8.jpg)
![汇编语言程序设计:[14]系统时间显示](https://exp-picture.cdn.bcebos.com/0d2fe5f202b375d7b82ea040515872dadf49d8e8.jpg)
![汇编语言程序设计:[14]系统时间显示](https://exp-picture.cdn.bcebos.com/8a17b3042e6817e97ab4154cd356d53da924cee8.jpg)
![汇编语言程序设计:[14]系统时间显示](https://exp-picture.cdn.bcebos.com/cd93a56651598540257f1f56b5a23a42a17ac4e8.jpg)