汇编网首页登录博客注册
assumechen的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
学习动态
最新留言
好友圈
文章收藏
友情链接

[2013-04-01 16:11] 实验14的实现

assume cs:code
code segment
; 要格式化的字符串
s1: db 32h,30h,0,0,'/',0,0,'/',0,0,' ',0,0,':',0,0,':',0,0,'$'
; CMOS日期部分的参数
s2: db 9,8,7,4,2,0                                
; 要格式化的字符串中变量的偏移地址
s3: db 2,5,8,11,14,17                
start:
        ; 秒:0 2:分 4:时 7:日 8:月 年:9
        ; 以"年/月/日 时:分:秒"的格式
        ; bx,di,si,cx
        mov ax,cs
        mov ds, ax
        mov di, offset s2
        mov si, offset s3
        mov cx,6
s:
        push cx
; 设置从70H端口读取日期,[di]指定要读取的时间部分  
        mov al,[di]                        
        out 70h,al                  ; 把读取日期部分的参数送入70H端口
        in al,71h                        ; 从70H端口中读出日期部分的值到AL中
        mov ah,al        
        mov ch,0
        mov cl,4
        shr ah,cl
        and al,00001111b
        add ah,30h                        ; 把BCD码转换为ACII码表示的10进制
        add al,30h                        
        mov cl,[si]                        ; s1字符串中要格式化的变量的偏移地址
        mov ch,0
        mov bx, offset s1                ; 把要显示的字符串的首地址放在bx中
        add bx,cx                                ; 要显示的字符串的首地址+要修改的偏移位置
        mov byte ptr [bx],ah        ; 把日期部分参数写入格式化字符串的指定位置
        mov byte ptr [bx+1],al
        inc si
        inc di
        pop cx
        loop s

        mov dx, offset s1
        mov ah,09H
        int 21H

        mov ax,4c00h
        int 21h
code ends
end start
评论次数(0)  |  浏览次数(538)  |  类型(汇编作业) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码