-136- | PC机汇编语言实战精解 | ![]() |
|||||||||||||||||||
![]() |
功能号:0FH 用 途:查询当前显示模式 参 数:无 调 用:INT 10H 返 回:AL=当前显示模式号 AH=每行显示的字符数 BH=当前的显示页号 |
||||||||||||||||||||
下面给出的程序才是真正的清屏程序: | |||||||||||||||||||||
C:\ASM\>DEBUG[Enter] -a100[Enter] 13C6:0100 mov ah,0f 13C6:0102 int 10 13C6:0104 mov ah,0 13C6:0106 int 10 13C6:0108 |
;选择10H中断0FH功能 ;获得当前的显示模式 ;选择10H中断的0号功能 ;重新设置当前的显示模式 |
||||||||||||||||||||
-g=100 104[Enter] AX寄存器中有10H中断返回的当前显示模式 | |||||||||||||||||||||
AX=5003 | BX=0000 | CX=0000 | DX=0000 | SP=FFEE | BP=0000 | SI=0000 | DI=0000 | ||||||||||||||
DS=13C6 | ES=13C6 | SS=13C6 | CS=13C6 | IP=0104 | NV UP EI PL NZ NA PO NC | ||||||||||||||||
13C6:0104 | B400 | MOV AH,00 | |||||||||||||||||||
0FH功能在AL寄存器中返回了当前的显示模式,AH寄存器中返回的是当前可显示的列数。我们可以利用0号功能重置显示模式以达到清屏的目的。以下的跟踪过程不再给出,大家可以自己跟踪程序观察结果。 四条指令即可完成清屏,确实简捷,而且无论在字符模式还是图形模式下这种方法都有效。不过优缺点总是相对的,用这种方法无法完成清窗口的功能。 至此我们已经学习了八项Video BIOS的功能调用,还有两项很重要的功能和两项近似没用的功能我们没有谈到,在本节的最后,我们将共同研究这四块未知领域。第一个要讨论的问题就是"显示页"。 关于显示分页的情况在本章的前半部分中已有所述,很多项功能调用都要求在BH寄存器中放入显示页号,而且只有"当前"的显示页才会真正出现在屏幕上。这样一来如果程序在其他显示中写入了字符应该如何处理才能在屏幕上看到呢?这就需要使用10H中断的05H功能来设置当前显示页: |
|||||||||||||||||||||
![]() |
功能号:05H 用 途:设定当前显示页 参 数:AL=所选的显示页号 调 用:INT 10H 返 回:无 |
||||||||||||||||||||
下面的程序演示了这个功能的应用,我们先在四个显示页中写入不同的信息,然后根据按 | |||||||||||||||||||||
Copyright © 2004-2015 Reanimator | www.cookmoon.org |