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

我的博客

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

[2009-10-09 20:11] 实验14  访问CMOS RAM

图片载入中
assume cs:code

data segment
  db 32 dup (0)
  db 9, 8, 7, 4, 2, 0 
  db '/', '/', ' ', ':', ':'
data ends

code segment
start:
  mov ax, data
  mov ds, ax
  mov si, 0
  mov di, 32
  mov cx, 6
start1:
  push cx

  mov al, [di]
  out 70h, al
  in al, 71h
  
  mov ah, al
  mov cl, 4
  shr ah, cl
  and al, 0fh
  add ah, 30h
  add al, 30h
  mov [si], ah    ;第一位数字复制到内存中
  mov [si+1], al  ;第二位数字复制到内存中
  mov ah, [di+6]  
  mov [si+2], ah  ;第三位字符复制到内存中
  inc di
  add si, 3
  pop cx
  loop start1

  mov dh, 8
  mov dl, 3
  mov cl, 2
  mov si, 0
  call show_str
  mov ax, 4c00h
  int 21h

;名称:show_str 显示字符串子程序  
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串  
;参数:(dh)=行号(取值范围0-24),(dl)=列号(取值范围0-79)  
;     (cl)=颜色,ds:si指向字符串的首地址  
;返回:无  
show_str:  
  push ax  
  push bx  
  push cx  
  push dx  
  push si  
  push es  

  mov ax, 0b800h  
  mov es, ax  
  mov al, 0a0h  
  mul dh  
  mov bx, ax  
  mov al, 2h  
  mul dl  
  add bx, ax  
  mov dl, cl  
  mov cx, 0  
s:  
  mov cl, [si]  
  jcxz ok  
  mov es:[bx], cl  
  mov es:[bx+1], dl  
  add bx, 2  
  inc si  
  jmp short s  
ok:  
  pop es  
  pop si  
  pop dx  
  pop cx  
  pop bx  
  pop ax  
  ret  
code ends
end start

=====================
assume cs:code

data segment
  db 32 dup ('$')
  db 9, 8, 7, 4, 2, 0 
  db '/', '/', ' ', ':', ':'
data ends

code segment
start:
  mov ax, data
  mov ds, ax
  mov si, 0
  mov di, 32
  mov cx, 6
start1:
  push cx

  mov al, [di]
  out 70h, al
  in al, 71h
  
  mov ah, al
  mov cl, 4
  shr ah, cl
  and al, 0fh
  add ah, 30h
  add al, 30h
  mov [si], ah
  mov [si+1], al
  mov ah, [di+6]
  mov [si+2], ah
  inc di
  add si, 3
  pop cx
  loop start1

  ;调整光标位置
  mov ah, 2 ;置光标
  mov bh, 0 ;第0页
  mov dh, 5 ;dh中放行号
  mov dl, 30 ;dl中放列号
  int 10h
  ;显示字符串
  mov dx, 0
  mov ah, 9
  int 21h

  mov ax, 4c00h
  int 21h

code ends
end start
============确实挺方便的:)===============
评论次数(4)  |  浏览次数(747)  |  类型(汇编作业) |  收藏此文  | 

[  tinyparticle   发表于  2009-10-09 20:17  ]

;名称:show_str 显示字符串子程序   
;功能:在指定的位置,用指定的颜色,显示一个用0结束的字符串   
;参数:(dh)=行号(取值范围0-24),(dl)=列号(取值范围0-79)   
;     (cl)=颜色,ds:si指向字符串的首地址   
;返回:无
====================================================
博主可以参考下书P261页介绍的“DOS中断例程应用”
可以利用INT 21H中断来实现这个子程序功:)

[  zwz_good   发表于  2009-10-09 20:25  ]

噢,习惯了使用这个子程序了,再来一个使用INT 21H中断的,谢谢提醒。

[  游客   发表于  2009-10-10 14:25  ]

自己实现更能体会过程,有好处,做完了再做便捷的就知道便捷在哪了。
顶博主!

[  zwz_good   发表于  2009-10-10 20:56  ]

谢谢你的鼓励。

 
 请输入验证码  (提示:点击验证码输入框,以获取验证码