汇编输出当前的系统时间

题目:

在CMOS RAM中,存放着当前的时间:年、月、日、时、分、秒。这6个信息的长度为1个字节,存放单元为:

                     秒:0         分:2          时:4             日:7             月:8              年:9

                     这些数据以BCD码的方式存放。

    从CMOS RAM中读取信息的方法是:

            out   70H,寄存器      ;寄存器中存放了要访问的单元地址

            in  寄存器,71H          ;从单元处读取数据

   接下来的是代码:

          ;编程,以 "年:月:日  时:分 星期几" 的格式,显示当前的日期、时间。
 

DATAS SEGMENT
   Monday  		DB  'Monday',13,10,'$'
   Tuesday  	DB  'Tuesday',13,10,'$'
   Wednesday  	DB  'Wednesday',13,10,'$'
   Thursday  	DB  'Thursday',13,10,'$'
   Friday  		DB  'Friday ',13,10,'$'
   Saturday  	DB  'Saturday',13,10,'$'
   Sunday  		DB  'Sunday',13,10,'$'
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
  
START:
    MOV AX,DATAS
    MOV DS,AX
    
    mov al,9
    out 70h,al
    in al,71h
    call BCD
    
    mov dl,45
    mov ah,2
    int 21h    
   
    mov al,8
    out 70h,al
    in al,71h
    call BCD
    mov dl,45
    mov ah,2
    int 21h
    
    mov al,7
    out 70h,al
    in al,71h
    call BCD    
     
    mov dl,32
    mov ah,2
    int 21h
    
    mov al,4
    out 70h,al
    in al,71h
    call BCD
    
    mov dl,58
    mov ah,2
    int 21h
    
    mov al,2
    out 70h,al
    in al,71h
    call BCD
    
    mov dl,32
    mov ah,2
    int 21h    
    
    mov al,6
    out 70h,al
    in al,71h
    and al,15
    call week
  
    MOV AH,4CH
    INT 21H
    
BCD proc 
     push bx
     push cx
     
     mov bl,al
     rol bl,1
     rol bl,1
     rol bl,1
     rol bl,1
     and bl,15
     mov dl,bl
     mov bl,al
     add dl,48
     mov ah,2
     
     int 21h
     and bl,15
     mov dl,bl
     add dl,48
     mov ah,2
     int 21h
     pop cx
     pop bx
     
     ret
     bcd endp

week proc 
     cmp al,1
     jne l1
     LEA  DX,Monday
     MOV  AH,9
     INT  21H
l1:     
     cmp al,2
     jne l2
     LEA  DX,Tuesday
     MOV  AH,9
     INT  21H
l2:    
     cmp al,3
     jne l3
     LEA  DX,Wednesday
     MOV  AH,9
     INT  21H
l3:
     cmp al,4
     jne l4
     LEA  DX,Thursday
     MOV  AH,9
     INT  21H
l4:
     cmp al,6
     jne l6
     LEA  DX,Friday
     MOV  AH,9
     INT  21H
l6:
     cmp al,5
     jne l5
     LEA  DX,Saturday
     MOV  AH,9
     INT  21H
l5: 
     cmp al,7
     jne l7
     LEA  DX,Sunday
     MOV  AH,9
     INT  21H      
l7: 
     ret
week endp     
     
CODES ENDS
    END START

运行结果:

 

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值