钟点计算机,汇编语言 钟点显示

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

data segment

zhengd db 0ah,0dh

db 0ah,0dh,0ah,0dh,0ah,0dh,0ah,0dh

db " @ @@@@@@@@ @ ",0ah,0dh

db " @ @ @ @ @@@@@@@ @@@@@@@@@ ",0ah,0dh

db " @@@@@@@@@ @ @@ @ @ @ ",0ah,0dh

db " @ @ @ @ @ @ @ ",0ah,0dh

db " @@ @ @@@@@@ @@@@@@@ @@ ",0ah,0dh

db " @@ @ @ @ @ @ @ @ @ ",0ah,0dh

db " @@ @ @ @ @ @ @ @@ @ ",0ah,0dh

db " @ @ @ @ @@@@@@@ @ @ ",0ah,0dh

db " @@@ @ @@ @@@ @@ ","$"

ringtime db 0ah,0dh," The Bell is Ringing!!",0ah,0dh

db 0ah,0dh,0ah,0dh

db" @@@ @@@@@ ",0ah,0dh

db" @@@@@@ @@@ @@@@ ",0ah,0dh

db" @@@@@@@@@ @@@ @@@@ ",0ah,0dh

db" @@@@@ @@@@ ",0ah,0dh

db" @@@@@ @@@@ ",0ah,0dh

db" @@@@@ @@@@@ @@@ ",0ah,0dh

db" @@@@@@@@@ @@@ @@@@ ",0ah,0dh

db" @@@@@@@@ @@@ @@@@ ",0ah,0dh

db" @@@@@@@@@ @@@ @@@@ ",0ah,0dh

db" @@@@@@@@@ @@@ @@@@ ",0ah,0dh

db" @@@ @@@@ ",0ah,0dh

db" @@@@@@@@@@@@@@@@@@ ",0ah,0dh

db" @@@@@@@@@@@@@@@@ ","$"

freq DW 371,371,441,495,556,556,556,495

DW 371,371,441,495,556,556,556

DW 371,371,441,495,556,589,556,495

DW 556,441,495,441,416,371

DW 742,556,556,742,556,556,742,556,661,742

DW 661,556,495,441,661,556,-1

time Dw 40,20,20,40,20,20,80,80

Dw 40,20,20,40,20,20,160

Dw 40,20,20,40,20,20,80,80

Dw 40,20,20,40,40,160

Dw 40,20,20,40,20,20,80,40,20,20

Dw 40,20,20,40,40,160

fre1 dw 659,-1

tim1 dw 100 ;整点报时频率

Disptime DB 00,00,":",00,00,":",00,00,"$"

mess db "input ringtime like (HH:MM:SS)",'$'

msg db ' WELCOME TO MY SIMPLE CLOCK! ',0dh,0ah

db 0dh,0ah,0dh,0ah, ' 1. Input r to set ringtime',0dh,0ah

db 0dh,0ah, ' 2. Zhengdian is auto ringing!',0dh,0ah

db 0dh,0ah, ' 3. Please Input ESC to quit ',0dh,0ah,'$'

settime db 9 dup(?)

esckey equ 1bh

sign db 0

data ends

code segment

shuchu macro string

mov ah,09h

lea dx,string

int 21h

endm

clear macro ah1,al1,bh1,ch1,cl1,dh1,dl1

push ax

push bx

push cx

push dx

mov ah,ah1

mov al,al1

mov bh,bh1

mov ch,ch1

mov cl,cl1

mov dh,dh1

mov dl,dl1

int 10h ;清屏宏

pop dx

pop cx

pop bx

pop ax

endm

guang macro dh2,dl2

push ax

push bx

push dx

mov ah,02h

mov bh,0h

mov dh,dh2

mov dl,dl2

int 10h ;光标定位

pop dx

pop bx

pop ax

endm

change macro c1,c2,c3

mov al,c1

cbw

div bh

add al,'0'

mov Disptime[c2],al

add ah,'0'

mov Disptime[c3],ah

endm ;把时间转换成ASCII码以便输出

crlf macro

mov ah,02h

mov dl,0ah

int 21h

mov ah,02h

mov dl,0dh

int 21h

endm ;回车换行宏

assume cs:code,ds:data

main proc

start:mov ax,data

mov ds,ax

mov es,ax ;段初始化

call jiemian

MOV AH,01H

MOV CH,0FFH

INT 10H ; 置光标类型 ,隐藏光标

cld ;串读取顺序设置

next:mov dl,0ffh

mov ah,06h

int 21h ;读键盘字符

cmp al,'r'

je A12 ;比较刚才的输入是否为设置闹铃

cmp al,1bh

je exit1_1 ;退出设置

next1:mov ah,2ch

int 21h ;取系统时间

mov bh,10

cmp cl,0 ;比较分钟

jne f1

cmp dh,0 ;比较秒钟

jne f1

mov cl,ch ;取小时数,以便整点报时

mov ch,0

clear 6,0,79,0,0,24,79

shuchu zhengd

A: call baoshi

call delay12

loop A ;调用整点报时

call jiemian

jmp next ;整点报时结束跳到开始

exit1_1:jmp exit1

f1:jmp A11

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值