目录 上一页 下一页 下一章

-166- PC机汇编语言实战精解









delay:





next:




exit:






main
code

or
out

mov
int

mov
add

mov
int
jz
cmp
jz

mov
int
cmp
jnz

in
and
out

mov
int
endp
ends
end
al,3
61h,al

ah,0
1ah

bx,dx
bx,182

ah,1
16h
next
ah,1
exit

ah,0
1ah
bx,dx
delay

al,61h
al,0fch
61h,al

ah,4ch
21h


main



;取得当前时钟计数


;当前时钟计数存入BX寄存器
;当前时钟计数加182

;从键盘缓冲区内取字符

;如键盘缓冲区空则转NEXT
;如取到字符,判断是Esc键吗?
;是Esc键转EXIT

;取得时钟计数

;到时间了吗?
;未到时间,转DELAY继续等待

;停止发声



;结束程序




  这个程序没什么难点,无非是在前面讨论的定时算法基础上加入了键盘输入判断,以此来决定何时中断定时而处理键盘输入。到这里我们这一节的内容也就结束了,要注意的是还有一些有关键盘的功能调用是由DOS为我们提供的,这些内容我没有讲解,大家可以自己找资料研究。
本章结束语
  在这一章里我们详细地研究了有关显示输出与键盘输入的内容,和其它书籍不同的是我们把BIOS和硬件作为主要研究的对象而忽略了DOS。我这样做是有原因的:
  (1)汇编语言本身就是面向硬件的语言,这就要求我们必须要对系统硬件有十分深入的了解,这样才可能编制出高效快速且色彩丰富的程序来;
  (2)DOS的寿命还有多长现在还是未知数,WINDOWS95已经推出,更新的操作系统还会出

Copyright © 2004-2015 Reanimator www.cookmoon.org

目录 上一页 下一页 下一章