汇编语言程序设计:[14]系统时间显示

2025-11-23 06:27:18

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]系统时间显示

汇编语言程序设计:[14]系统时间显示

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]系统时间显示

汇编语言程序设计:[14]系统时间显示

汇编语言程序设计:[14]系统时间显示

汇编语言程序设计:[14]系统时间显示

汇编语言程序设计:[14]系统时间显示

汇编语言程序设计:[14]系统时间显示

汇编语言程序设计:[14]系统时间显示

汇编语言程序设计:[14]系统时间显示

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢