|
主题 : : 实验14 访问CMOS RAM 完成,欢迎指教! [待解决] |
回复[ 7次 ]
点击[ 453次 ] | |
|
|
|
|
[帖 主]
[ 发表时间:2009-05-16 00:09 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:4
注册日期:2008-12-12 00:18 |
assume cs:code
code segment
db 'yy/mm/dd hh:mm:ss','$' \\格式化定义要显示的数据
s: db 9,8,7,4,2,0 \\要读取CMOS的内存单元顺序
start:mov ax,cs
mov ds,ax
mov bx,offset s \\bx定位要访问几号内存单元
mov si,0 \\si定位要修改数据的首地址
mov cx,6 \\6次循环写入年月日,时分秒等数据到格式化字符串中
ok:push cx
mov al,[bx]
out 70h,al
in al,71h
mov ah,al
mov cl,4
shr al,cl
and ah,00001111b
add ax,3030h
mov [si],ax
inc bx
add si,3
pop cx
loop ok \\以上为生成要显示数据的字符串部分
mov ah,2
mov bh,0
mov dh,13
mov dl,32
int 10h \\调用BIOS中断置光标到屏幕中间
mov dx,0
mov ah,9
int 21h \\调用DOS中断显示上面生成的字符串
mov ax,4c00h
int 21h
code ends
end start | | |
|
|
|
|
[第1楼]
[ 回复时间:2009-05-18 10:14 ]
[引用]
[回复]
[ top ] | |
荣誉值:169
信誉值:0
注册日期:2008-08-19 16:07 |
|
|
|
|
|
[第2楼]
[ 回复时间:2009-05-22 19:59 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:2
注册日期:2008-12-15 16:17 |
|
|
|
|
|
[第3楼]
[ 回复时间:2009-09-09 04:58 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-09-06 04:20 |
回复:[贴 主]
------------------
s: db 9,8,7,4,2,0 这个是怎么知道的? | | |
|
|
|
|
[第4楼]
[ 回复时间:2009-10-01 18:04 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:9
注册日期:2009-09-16 17:09 |
|
|
|
|
|
[第5楼]
[ 回复时间:2009-10-01 18:05 ]
[引用]
[回复]
[ top ] | |
荣誉值:4
信誉值:9
注册日期:2009-09-16 17:09 |
复制以上代码测试,乱七八糟
------------------
回复:原来是注释有问题,错怪了 | | |
|
|
|
|
[第6楼]
[ 回复时间:2009-10-08 12:39 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-05 23:09 |
|
|
|
|
|
[第7楼]
[ 回复时间:2009-10-08 12:42 ]
[引用]
[回复]
[ top ] | |
荣誉值:0
信誉值:0
注册日期:2009-10-05 23:09 |
回复:[第3楼]
------------------
书本第269页有说明。在CMOS RAM中,存放着当前的时间:年、月、日、时、分、秒。这6个信息的长度都为1个字节,存放单元为:秒 0; 分 2; 时 4; 日 7; 月 8; 年 9。 | | |