显示字符串(0x10,ah=13h)

显示字符串(0x10,ah=13h)

Content #

BIOS中断服务程序INT 10h的主功能号AH=13h可以实现字符串的显示功能。 INT 10 - VIDEO - WRITE STRING (AT and later,EGA) AH = 13h AL = write mode bit 0: update cursor after writing bit 1: string contains alternating characters and attributes bits 2-7: reserved (0) BH = page number BL = attribute if string contains only characters CX = number of characters in string DH,DL = row,column at which to start writing ES:BP -> string to write Return: nothing

❏ AL=写入模式。■ AL=00h:字符串的属性由BL寄存器提供,而CX寄存器提供字符串长度(以B为单位),显示后光标位置不变,即显示前的光标位置。■ AL=01h:同AL=00h,但光标会移动至字符串尾端位置。■ AL=02h:字符串属性由每个字符后面紧跟的字节提供,故CX寄存器提供的字符串长度改成以Word为单位,显示后光标位置不变。■ AL=03h:同AL=02h,但光标会移动至字符串尾端位置。❏ BL=字符属性/颜色属性。■ bit 0~2:字体颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白)。■ bit 3 :字体亮度(0:字体正常,1:字体高亮度)。■ bit 4~6:背景颜色(0:黑,1:蓝,2:绿,3:青,4:红,5:紫,6:综,7:白)。■ bit 7:字体闪烁(0:不闪烁,1:字体闪烁)。

字符串的显示功能,算是BIOS中断服务程序中使用比较频繁的功能。该功能不仅可以显示字符串、设定字体的前景色和背景色,还可以设置待显示字符串的坐标位置。此功能非常适合显示不同的日志信息。

From #

一个64位操作系统的设计与实现