定时器时间数据转换子程序分析

豆豆网   技术应用频道   2007年03月13日  【字号: 收藏本文

本文详细介绍定时器时间数据转换子程序分析

  进日,我在看一时钟TSR程序,分析其中一个把BIOS数据区中的定时器数据转换成HH:MM:SS时间格式的数据(ASCII)的程序片段时,既学到一点东西,又发现了一写自己弄不明白的问题。现在我把自己学到的好东西写出来与大家分享,同时向各路高手请教请教。

  程序片段如下:(汇编语言程序)

... (省略)
  HMS db 8 dup(':')
...
time proc
    lea di,position       ;(1) --行号
mov ax,0          ;(2)
mov ds,ax          ;(3)
mov al,ds:[46eh]      ;(4)
call clk1          ;(5)
mov ax,ds:[46ch]      ;(6)
mov dx,0          ;(7)
mov bx,444h         ;(8)
call clk0          ;(9)
mov ax,dx          ;(10)
mov cx,3ch         ;(11)
mul cx           ;(12)
clk0:
    add di,3          ;(13)
div bx           ;(14)
clk1:
    aam             ;(15)
add ax,3030h        ;(16)
xchg ah,al          ;(17)
mov cs:[di],ax       ;(18)
ret             ;(19)
time endp

  程序片段实现的原理是把BIOS的INT 1CH时钟控制中断在BIOS数据区建立的0040:006CH(低字) 和0040:006EH(高字)单元32位时间数字计数器中的数值用一种比较简明的方式转换成HH:MM:SS时间格式(为ASCII字符),再用另一显示子程序把转换好的字符传显示在屏幕上。

责编:豆豆技术应用

正在加载评论...