王爽<汇编语言>实验14  访问CMOS RAM 解答(详细注释)

编程,以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。

assume cs:code  
  
data segment  
    db '00/00/00 00:00:00','$'  ;定义显示的年月日,时钞分格式空间,$自动换行
    db 9,8,7,4,2,0 ;定义存放时间信息空间
data ends  
code segment  
start:  
    mov ax,data ;取得段地址
    mov ds,ax  
    mov di,0  
    mov si,18 ;data中第二组数据  上面空间0-17个字节
  
    mov cx,6  ;循环6次
s:  
    mov al,[si]  
    out 70h,al  
    in al,71h  ;取cmos_ram的地址和数据信息
    mov ah,al  
    mov cl,4  
    shr ah,cl  
    and al,00001111b  ;取bcd码解压缩
  
    add ah,30h  
    add al,30h ;解压后的bcd码转为ascll码
  
    mov [di],ah  ;显示高位10位
    mov [di+1],al ;显示低位个位
  
    inc si ;下一个源地
    add di,3  ;下一个目地地址
    loop s  
  
    mov ah,2 ;光标位
    mov bh,0  ;页号
    mov dh,12  ;行号
    mov dl,20  ;列号
    int 10h;屏幕输出中断
  
    mov ax,data  
    mov ds,ax ;ds和data挂钩
    mov dx,0 ;ds:dx指向data:0
    mov ah,9  ;调用中断21中的9号子程序,光标位显示字符串
    int 21h ;程序返回中断
  
    mov ax,4c00h  
    int 21h  
  
code ends  
end start  


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值