. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->INT指令
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  时间程序显示问题  [已解决] 回复[ 3次 ]   点击[ 485次 ]  
mgf1988629
[帖 主]   [ 发表时间:2009-12-10 12:28 ]   [引用]   [回复]   [ top ] 
荣誉值:14
信誉值:2
注册日期:2009-11-30 11:46
要求在DEBUG屏幕中间以“年/月/日 时:分:秒”显示CMOS时间?
程序如下:
assume cs:code ds:data
data segment
db9,8,7,4,2,0   将时间程序地址定义到内存
data ends
Code segment
Start:
Mov ax,data
Mov ds,ax
Mov si,0
Mov cx,6
Push cx
s:
Mov al,[si]  将地址放入Al中
Out 70h,al
In al,71h    取得时间程序数据并保存在al中
Mov ah,al
Mov cl,4
Shr ah,cl
And al,00001111b
Add ah,30h
Add al,30h 将时间以十进制形式显式

Mov dx,0b800h
Mov es,dx
Mov di,160*12+16*4+8
Mov byte ptr es:[di],ah
Mov byte ptr es:[di+2],al 将其放入显存
Inc si
Add di,5
Pop cx
Loop s

Mov byte ptr es:[di+4],'/'
Mov byte ptr es:[di+9],'/'
Mov byte ptr es:[di+19],':' 
Mov byte ptr es:[di+24],':' 将符号放入显存

Mov ax,4c00h
Int 21h 程序返回

Code ends
End start
我帮它加载入内存调式,可为什么数据送入不了显存,难道是程序哪儿出了问题?麻烦各位帮我看看,不甚感激!
ohb2
[第1楼]   [ 回复时间:2009-12-18 13:31 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2009-03-29 12:00
assume cs:code    ;这里去掉 ds:data
data segment 
db 9,8,7,4,2,0   ;(db后面要空格)    将时间程序地址定义到内存 
data ends 
Code segment 
start: 
Mov ax,data 
Mov ds,ax 
Mov si,0 
Mov cx,6
Mov dx,0b800h 
Mov es,dx 
Mov di,160*12+40*2 
   push di    ;di要入栈
s:  Push cx   ;s循环在这里开始 
    
Mov al,[si]  ;将地址放入Al中 
Out 70h,al 
In al,71h   ; 取得时间程序数据并保存在al中 
Mov ah,al 
Mov cl,4 
Shr ah,cl 
And al,00001111b 
Add ah,30h 
Add al,30h    ;将时间以十进制形式显式 


Mov byte ptr es:[di],ah 
Mov byte ptr es:[di+2],al   ;将其放入显存 
Inc si 
Add di,6    ;这里改为6
Pop cx 
Loop s 
pop di
Mov byte ptr es:[di+4],'/' 
Mov byte ptr es:[di+10],'/' ;改为10
Mov byte ptr es:[di+22],':'  ; 改为22

Mov byte ptr es:[di+28],':'    ;(改为28)    将符号放入显存 


Mov ax,4c00h 
Int 21h    ; 程序返回 

code ends 
End start
调式通过
mgf1988629
[第2楼]   [ 回复时间:2010-03-05 00:07 ]   [引用]   [回复]   [ top ] 
荣誉值:14
信誉值:2
注册日期:2009-11-30 11:46
谢谢
mgf1988629
[第3楼]   [ 回复时间:2010-03-05 00:09 ]   [引用]   [回复]   [ top ] 
荣誉值:14
信誉值:2
注册日期:2009-11-30 11:46
此贴由 贴主 于 [ 2010-03-05 00:09 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(ohb2):2分  
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved