鱼C论坛

 找回密码
 立即注册
查看: 857|回复: 0

[汇编作业] 实验14

[复制链接]
发表于 2023-2-28 22:35:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
无言
assume cs:code

data segment
         db '2000/00/00 00:00:00','$'
         db 2,5,8,11,14,17               ; 对应年、月、日、时、分、秒的偏移地址
         db 9,8,7,4,2,0                  ; 对应年、月、日、时、分、秒在CMOS RAM中的位置
data ends

code segment
    start:   mov  ax,data
             mov  ds,ax
             mov  si,0            ; 定位字符串
             mov  di,20           ; 定位偏移地址
             mov  bp,26           ; 定位时间信息的位置

             mov  cx,6
    l0:      mov  al,ds:[bp]      ; 获取年份
             call get_time
             mov  si,ds:[di]
             and  si,0FFH         ; 数据是8位的,留下低8位
             mov  ds:[si],ah
             mov  ds:[si+1],al

             inc  di
             inc  bp
             loop l0

             mov  ah,2            ; 置光标
             mov  bh,0            ; 第0页
             mov  dh,12           ; dh中放行号
             mov  dl,30           ; dl中放列号
             int  10h

             mov  dx,0
             mov  ah,9            ; 在光标位置显示字符串
             int  21h

             mov  ax,4c00h
             int  21h

    ; 功能: 返回时间的十进制形式
    ; 参数: (al)=内存位置
    ; 返回: (ah)=数据的十位数
    ;      (al)=数据的个位数
    get_time:push cx
             out  70h,al
             in   al,71h
             mov  ah,al           ; al中从CMOS RAM的指定单元中读出的数据
             mov  cl,4
             shr  ah,cl           ; ah中为数据的十位
             and  al,00001111b    ; al中为数据的个位
             add  ah,30h          ; 转换为十进制ASCII码
             add  al,30h          ; 转换为十进制ASCII码
             pop  cx
             ret
code ends

end start
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 20:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表