求一个程序,微机原理,8086汇编语言,实现一个简单实用功能,如时钟显示

求一个程序,微机原理,8086汇编语言,实现一个简单实用功能,如时钟显示,第1张

求一个程序,微机原理,8086汇编语言,实现一个简单实用功能,如时钟显示

在右上角显示时钟,按任一键结束

用MASM5.0编译通过.

data segment

HH DB 0,0,':'

MM DB 0,0,':'

SS1 DB 0,0

data ends

code segment

main proc far

assume cs:code

start:

push ds

mov ax,0

push ax

mov ax,data

mov ds,ax

AGAIN:

mov ah,2ch 读取系统时咐扮间 CH:CL--时:分 DH:DL--秒:衡历灶百分秒

int 21h

MOV BX ,OFFSET HH

MOV AL,CH

CALL C16_10 转换AL中16进制为10进制,并填入相应位置烂神

MOV BX ,OFFSET MM

MOV AL,CL 分

CALL C16_10

MOV BX ,OFFSET SS1

MOV AL,DH 秒

CALL C16_10

MOV AH,2 光标定位

MOV DH,0 首行

MOV DL,70 70列

MOV BH,0

INT 10H

MOV CX,8

MOV SI,OFFSET HH

NN1:

MOV AH,0EH 电传方式写字符(一次1个)

MOV AL,[SI]

MOV BL,0

INT 10H

INC SI

LOOP NN1

MOV AH,1

INT 16H

JNZ DOWN 按任一键结束

JMP AGAIN

DOWN:

RET

main endp

============

C16_10 PROC NEAR

PUSH CX 将AL中的16进制转为10进制

MOV AH,0

MOV CX,10D

DIV CL

ADD AX,3030H

MOV [BX],AL

INC BX

MOV [BX],AH

POP CX

RET

C16_10 ENDP

=============

code ends

end start

可以放一个中断程序到1C中断,这样会每秒18.2次被调用

里面放一个简单的敏册手显示程序,调用中断10,定位当时的鼠标位置,保存,然后可以到屏幕右上角显示当时的时间,姿做时钟数据直接调用21中断取得电脑主机时间数据。

程序主体就是置换原有1C中断地址为新中断地址,记得保存原有中断地址,在新中断运行的时候调用一次原有中断。然后可以考虑驻留内存,或者是遇桥嫌到中断按键后退出程序以便于调试


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12269847.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存