16位汇编读取CMOS时间并显示
2013-01-23 13:42
309 查看
;*************************************** ; 程序功能:读取CMOS时间并显示 ; CMOS读写方法如下: ; 1.向地址端口70H写入要访问的单元地址 ; 2.从71H端口读出数据 ; 注意:CMOS中存放的是BCD码 ; 数码: 0 1 2 3 4 ; BCD码:0000 0001 0010 0011 0100 ; 数码: 5 6 7 8 9 ; BCD码:0101 0110 0111 1000 1001 ; CMOS RAM中时间格式如下: ; 秒:00H ; 分:02H ; 时:04H ; 日:07H ; 月:08H ; 年:09H ; BCD码转ASCII码:BCD + 30H = ASCII ;*************************************** assume cs:code,ds:data,ss:stack stack segment db 16 dup(0) stack ends data segment ;格式: 年 月 日 时 分 秒 db 0,0,'-',0,0,'-',0,0,' ',0,0,':',0,0,':',0,0,'$' ;CMOS端口号序列 db 09h,08h,07h,04h,02h,00h data ends code segment start: mov ax,stack ;栈段初始化 mov ss,ax mov sp,10h mov ax,data ;数据段初始化 mov ds,ax ;数据段偏移量如下: ; L H ;年: 0, 1 ;月: 3, 4 ;日: 6, 7 ;时: 9, 10 ;分: 12, 13 ;秒: 15, 16 ; L->si H->di mov si,0 mov di,1 xor bx,bx mov bx,18 mov cx,6 s: mov al,ds:[bx] out 70h,al in al,71h mov ah,al push cx mov cl,4 shr ah,cl pop cx and al,00001111b add ah,30h add al,30h mov byte ptr ds:[si],ah mov byte ptr ds:[di],al inc bx add si,3 add di,3 loop s mov dx,offset ds:[0] ;设置字符串首地址 call show mov ah,4ch ;返回OS mov al,0h ;返回值:0 int 21h ;调用21号中断 ;********************* ; 子程序:显示字符 ; 入口参数:DS:DX=串首址 ; 返回值:无 ;********************* show: push ax mov ah,09h int 21h pop ax ret code ends end start
运行效果图如下:
相关文章推荐
- 读取CMOS时间并显示
- 直接从CMOS读取系统时间
- 80x86 汇编语言:在屏幕右上角显示系统时间
- 16位汇编显示ASCII码表_源程序
- 【php】读取"文件列表"按时间倒序显示,并递归显示各层文件夹、!
- 汇编 实时显示系统时间 年月日信息
- 从CMOS中读取时间
- JS定时程序,设定一个一直刷新,又时间间隔的js,读取当前的时间并显示
- 从文件夹读取图片并按时间排序,然后分页显示
- 汇编程序:显示时间中响应键盘中断
- jsp中用EL读取了数据库里面的时间,怎么设置格式显示的格式
- 汇编语言 裸机显示时间
- 显示系统当前时间的汇编程序
- (汇编实现)显示系统时间
- 读取CMOS时钟并显示
- 汇编语言:以“年/月/日 时:分:秒”的格式,显示当前的日期、时间。
- 比较两个时间的差别并且显示为易于读取的格式
- 解决jsp中input标签读取时间格式实例显示到页面
- 开启SQL Server执行占用时间显示和逻辑读取次数显示
- 汇编,实现显示当前时间