-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 |