BIOS INT 0x10 中断

219 阅读2分钟

功能介绍:(不断完善)

  • 0x00 -- 设置显示器模式
  • 0x01 -- 设置光标形状
  • 0x02 -- 设置光标位置
  • 0x03 -- 读取光标信息
  • 0x04 -- 读取光笔位置
  • 0x05 -- 设置显示页
  • 0x13 -- 显示字符串

初始化屏幕或滚屏

入口参数:

AH=06H(向上滚屏),07H(向下滚屏)

AL=滚动行数(0——清窗口)

BH=空白区域的缺省属性

(CH、CL)=窗口的左上角位置(Y 坐标,X 坐标)

(DH、DL)=窗口的右下角位置(Y 坐标,X 坐标)

出口参数:

示例:

mov ax, 0x0600
mov bx, 0x0700   ; bh=0x07, 空白区域的缺省属性为灰色
mov cx, 0x0000
mov dx, 0x184f   ;  80x25 屏幕
int 0x10

设置光标位置

入口参数:

AX=0x02

BH=显示页码

DH=行(Y 坐标)

DL=列(X 坐标)

出口参数:

示例:

mov ax, 0x0200
mov bx, 0x0000
mov dx, 0x0000
int 0x10

显示字符串

入口参数:

AH=0x13

BH=页码

BL=属性(若AL=0x00或0x01)

CX=显示字符串长度

(DH、DL)=坐标(行、列)

ES:BP=显示字符串的地址

AL=显示输出方式

  • 0 字符串中只含显示字符,其显示属性在 BL 中,显示后,光标位置不变
  • 1 字符串中只含显示字符,其显示属性在 BL 中,显示后,光标位置改变
  • 2 字符串中含显示字符和显示属性,显示后,光标位置不变
  • 3 字符串中含显示字符和显示属性,显示后,光标位置改变

出口参数:

示例:

into_boot_msg:  db "Start Luminous os boot", 0

mov ax, into_boot_msg
mov bp, ax
mov ax, 0x1301
mov bx, 0x0007
mov cx, 22
mov dx, 0x0000
int 0x10