求电子时钟源码

deansroom 2006-03-05 08:56:30
自己不懂汇编 现需要一个电子时钟的源代码 望哪位仁兄给一份 谢过先
...全文
216 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
rockefeller8 2006-03-10
  • 打赏
  • 举报
回复
网上搜索一下,有很多的
D0X0F4 2006-03-07
  • 打赏
  • 举报
回复
S
TVPD4 2006-03-07
  • 打赏
  • 举报
回复
D
V2NBZ 2006-03-07
  • 打赏
  • 举报
回复
C
deansroom 2006-03-06
  • 打赏
  • 举报
回复
多谢 我先找找看
Leomaxking 2006-03-06
  • 打赏
  • 举报
回复
COUNT_VAL =18 ;间隔“滴答”数
DPAGE =0 ;显示页号
ROW =23 ;显示时钟的行号
COLUMN =80-BUFF_LEN ;显示时钟的开始列号
COLOR =07H ;显示时钟的属性值

;代码
CSEG SEGMENT
ASSUME CS:CSEG,DS:CSEG
;1CH号中断处理程序使用的变量
COUNT DW COUNT_VAL;“滴答”计数
HHHH DB ?,?,':' ;时
MMMM DB ?,?,':' ;分
SSSS DB ?,? ;秒
BUFF_LEN = $-OFFSET HHHH ;BUFF_LEN为显示信息长度
CURSOR DW ?
OLD1CH DD ?
OLD53 DW ?
;1CH号中断处理程序代码
NEW1CH: CMP CS:COUNT,0 ;是否已到显示时候?
JZ NEXT ;是,转
DEC CS:COUNT ;否
JMP DWORD PTR CS:OLD1CH
;
NEXT:


MOV CS:COUNT,COUNT_VAL ;重置间隔数的初值

STI
PUSH DS
PUSH ES
PUSH AX
PUSH BX
PUSH CX
PUSH DX
PUSH SI
PUSH DI

PUSH CS
POP DS ;置数据段寄存器
PUSH DS
POP ES ;置代码段寄存器




CALL GET_T ;取时间
; MOV BH,DPAGE
; MOV AH,3 ;取原光标位置
; INT 10H
; MOV CURSOR,DX ;保存原光标位置





MOV CX,BUFF_LEN
MOV SI,OFFSET HHHH
MOV AX,0B800H
MOV ES,AX
MOV DI,1992*2
MOV Ah,7

SHOW: MOV Al,[SI]
MOV ES:[DI],AX
INC SI
INC DI
INC DI

LOOP SHOW

; MOV BH,DPAGE ;恢复原光标
; MOV DX,CURSOR
; MOV AH,2
; INT 10H

; MOV BP,OFFSET HHHH
; MOV BH,DPAGE
; MOV DH,ROW
; MOV DL,COLUMN
; MOV BL,COLOR
; MOV CX,BUFF_LEN
; MOV AL,0
; MOV AH,13H ;显示时钟
; INT 10H
POP DI ;恢复现场
POP SI
POP DX
POP CX
POP BX
POP AX
POP ES
POP DS

; IRET ;中断返回
JMP DWORD PTR CS:OLD1CH
;
;子程序说明信息略
GET_T PROC
MOV AH,2 ;取时间信息
INT 1AH
MOV AL,CH ;把时数转为可显示形式
CALL TTASC
XCHG AH,AL
MOV WORD PTR HHHH,AX ;保存
MOV AL,CL ;把分数转为可显示形式
CALL TTASC
XCHG AH,AL
MOV WORD PTR MMMM,AX ;保存
MOV AL,DH ;把秒数转为可显示形式
CALL TTASC
XCHG AH,AL
MOV WORD PTR SSSS,AX ;保存
RET
GET_T ENDP
;
;子程序名:TTASC
;功能:把两位压缩的BCD码转换为对应的ASCII码
;入口参数:AL=压缩BCD码
;出口参数:AH=高位BCD码所对应的ASCII码
; AL=低位BCD码所对应的ASCII码
TTASC PROC
MOV AH,AL
AND AL,0FH
SHR AH,1
SHR AH,1
SHR AH,1
SHR AH,1
ADD AX,3030H
RET
TTASC ENDP
;===========================
;初始化部分代码和变量
;OLD1CH DD ? ;原中断向量保存单元

;EXIT: LDS DX,OLD1CH ;取保存的原1CH号中断向量
; MOV AX,251CH
; INT 21H ;恢复原1CH号中断向量
; MOV AL,35H
; OUT 43H,AL
; MOV AX,OLD53
; OUT 43H,AL
; MOV AL,AH
; OUT 43H,AL
; MOV AX,4C00H
; INT 21H

START:
MOV AL,0
OUT 43H,AL
IN AL,40H
MOV AH,AL
IN AL,40H
XCHG AL,AH
MOV OLD53,AX

MOV AL,34H
OUT 43H,AL
MOV BX,11932
MOV AL,BL
OUT 40H,AL
MOV AL,BH
OUT 40H,AL


PUSH CS
POP DS
MOV AX,351CH ;取1CH号中断向量
INT 21H
MOV WORD PTR OLD1CH,BX;保存
MOV WORD PTR OLD1CH+2,ES
MOV DX,OFFSET NEW1CH
MOV AX,251CH ;置新的1CH号中断向量
INT 21H
MOV DX,OFFSET START
ADD DX,15
MOV CL,4
SHR DX,CL
ADD DX,10H


MOV AH,31H


; MOV AH,0BH
; INT 21H
; CMP AL,00H
; JNZ EXIT


; MOV AH,0 ;假设其他工作是等待按键
; INT 16H

; MOV AH,4CH ;结束
INT 21H
CSEG ENDS
END START
fhb13 2006-03-06
  • 打赏
  • 举报
回复
一楼说的网站我也去看看
一般我是用www.google.com找的
大熊猫侯佩 2006-03-05
  • 打赏
  • 举报
回复
是 www.aogosoft.com
大熊猫侯佩 2006-03-05
  • 打赏
  • 举报
回复
到 www.aofosoft.com 找找看

21,459

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧