INT 10H

INT 10hINT 10HINT 16BIOS中断调用的第10H功能的简写, 在基于x86的计算机系统中属于第17中断向量BIOS通常在此建立了一个中断处理程序提供了实模式下的视频服务。此类服务包括设置显示模式,字符和字符串输出,和基本图形(在图形模式下的读取和写入像素)功能。要使用这个功能的调用,在寄存器AH赋予子功能号,其它的寄存器赋予其它所需的参数,并用指令INT 10H调用。INT 10H的执行速度是相当缓慢的,所以很多程序都绕过这个BIOS例程而直接访问显示硬件。设置显示模式并不经常使用,可以通过BIOS来实现,而一个游戏在屏幕上绘制图形,需要做得很快,所以直接访问显存比用BIOS调用每个像素更适合。

支持功能列表

功能功能代码参数返回
设置显示模式AH=00HAL=显示模式AL=显示模式标志/CRT控制模式字节
设置文本方式光标AH=01HCH=行扫描开始,CL=行扫描结束

通常一个字符单元有8个扫描行(0-7)。所以,CX=0607H是一个正常的光标,CX=0007H是一个完整块光标。如果设置CH的第5位,这通常意味着“隐藏光标”,所以CX=2607H是一种无形光标。

有些显示卡有16条扫描线(00H-0Fh)。

有些显示卡不使用CH的第5位,对于这种情况,可以尝试行扫描开始大于行扫描结束(如:CX=0706h) 。

设置光标位置AH=02HBH=页码,DH=行,DL=列
获取光标位置和形状AH=03HBX=页码AX=0,CH=行扫描开始,CL=行扫描结束,DH=行,DL=列
读取光笔位置(VGA系统不工作)AH=04HAH=状态(0=无触发,1=触发),BX=X像素,CH=Y像素,CL=像素行模式(0FH-10H),DH=字符Y,DL=字符X
选择活动显示页AH=05HAL=页码
向上滚动窗口AH=06HAL=滚动的行(0=清除,被用于CH,CL,DH,DL),

BH=背景颜色和前景颜色,BH=43H,意义为背景颜色为红色,前景颜色为青色。请参考 BIOS颜色属性
CH=高行数,CL=左列数,DH=低行数,DL=右列数

向下滚动窗口AH=07H参考向上滚动
读光标所在位置的字符和属性AH=08HBH=页码AH=颜色,AL=字符
在当前光标位置写字符和属性AH=09HAL=字符,BH=页码,BL=颜色,CX=多次打印字符
在光标位置写入字符AH=0AHAL=字符,BH=页码,CX=多次打印字符
设置背景/边框颜色AH=0BH,BH=00HBL=背景/边框颜色(边框颜色只能在文本模式设置)
设置调色板AH=0BH,BH=01HBL=调色板ID(只使用于CGA,但现在的显示卡都支持多个或所有模式。)
写图形像素AH=0CHAL=颜色,BH=页码 CX=x,DX=y
读图形像素AH=0DHBH=页码,CX=x,DX=yAL=颜色
电传打字机输出AH=0EHAL=字符,BH=页码,BL=颜色(只适用于图形模式)
获取当前显示模式AH=0FHAH=屏幕字符的列数
         AL=显示模式(参见功能00H中的说明)
         BH=页码
写字符串(EGA+,最低PC AT )AH=13HAL=写模式,BH=页码,BL=颜色,CX=字符串长度,DH=行,DL=列,ES:BP=字符串偏移量

参考

参见

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.