没有合适的资源?快使用搜索试试~ 我知道了~
汇编语言数字钟的实现,对于数字钟的时时调用
资源推荐
资源详情
资源评论
;name: ELECTRONIC CLOCK
;design by zengqingyu class1 and moxiaolei class3
data segment
mess1 db ' \\\|/// ',0ah,0dh
db ' \\ .-.- // ',0ah,0dh
db ' ( .@.@ ) ',0ah,0dh
db ' +-----------oOOo-----(_)-----oOOo-------------+ ',0ah,0dh
db ' + ASM ASSIGNMENT + ',0ah,0dh
db ' + ELECTRONIC CLOCK + ',0ah,0dh
db ' + Design by Kevin & Ray + ',0ah,0dh
db ' + version:1.0 + ',0ah,0dh
db ' + + ',0ah,0dh
db ' + + ',0ah,0dh
db ' + Press ESC button to quit + ',0ah,0dh
db ' +-------------------------Oooo----------------+ ','$'
mess2 db 'The time is now:',0ah,0dh,'$'
t_buff db 20 ;在数据段开辟一时间显示缓冲区
data ends
stack segment
db 100 dup(?)
stack ends
code segment
assume cs:code,ss:stack,ds:data
main:
call clear ;调用清屏子程序
display: ;----------------------------时间显示部分--------------
;design by zengqingyu class1 and moxiaolei class3
data segment
mess1 db ' \\\|/// ',0ah,0dh
db ' \\ .-.- // ',0ah,0dh
db ' ( .@.@ ) ',0ah,0dh
db ' +-----------oOOo-----(_)-----oOOo-------------+ ',0ah,0dh
db ' + ASM ASSIGNMENT + ',0ah,0dh
db ' + ELECTRONIC CLOCK + ',0ah,0dh
db ' + Design by Kevin & Ray + ',0ah,0dh
db ' + version:1.0 + ',0ah,0dh
db ' + + ',0ah,0dh
db ' + + ',0ah,0dh
db ' + Press ESC button to quit + ',0ah,0dh
db ' +-------------------------Oooo----------------+ ','$'
mess2 db 'The time is now:',0ah,0dh,'$'
t_buff db 20 ;在数据段开辟一时间显示缓冲区
data ends
stack segment
db 100 dup(?)
stack ends
code segment
assume cs:code,ss:stack,ds:data
main:
call clear ;调用清屏子程序
display: ;----------------------------时间显示部分--------------
mov ax,seg data
mov ds,ax
mov bx,offset t_buff ;送t_buff的偏移地址到BX
mov ah,2ch ;调用DOS时间调用功能,功能号:2cH,小时,分钟,秒数分别保存在CH,CL,DH中
int 21h
mov al,ch ;小时数设定
mov ah,0
call bctd ;调用进制转换子程序
push ax
and al,0f0h ;选取al高四位
mov cl,4 ;设置右循环的次数
rol al,cl ;右循环
or al,30h ;加30h得到ACSII码
mov [bx],al ;将得到的结果送到t_buff缓冲区
inc bx ;BX自加1,指针指向下一个缓冲区的下一个地址
pop ax
and al,0fh ;选取低四位,道理同上
or al,30h
mov [bx],al ;将转换后的低四位值送入缓冲区的第二个地址
inc bx
;----------------------------------------------------------
mov al,':' ;显示分号
mov [bx],al
inc bx
;-------------------------------------------------------
mov ah,2ch
int 21h
mov ds,ax
mov bx,offset t_buff ;送t_buff的偏移地址到BX
mov ah,2ch ;调用DOS时间调用功能,功能号:2cH,小时,分钟,秒数分别保存在CH,CL,DH中
int 21h
mov al,ch ;小时数设定
mov ah,0
call bctd ;调用进制转换子程序
push ax
and al,0f0h ;选取al高四位
mov cl,4 ;设置右循环的次数
rol al,cl ;右循环
or al,30h ;加30h得到ACSII码
mov [bx],al ;将得到的结果送到t_buff缓冲区
inc bx ;BX自加1,指针指向下一个缓冲区的下一个地址
pop ax
and al,0fh ;选取低四位,道理同上
or al,30h
mov [bx],al ;将转换后的低四位值送入缓冲区的第二个地址
inc bx
;----------------------------------------------------------
mov al,':' ;显示分号
mov [bx],al
inc bx
;-------------------------------------------------------
mov ah,2ch
int 21h
剩余6页未读,继续阅读
资源评论
pizi145840
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功