BIOS中断33h,鼠标中断(由鼠标驱动程序 MOUSE.COM/MOUSE.SYS 注册,不是BIOS原生提供)。

注意:INT 33h 的功能号约定在 AX(16位) 里,不是 AH。这跟大多数走 AH 做功能号的 BIOS 中断不一样,是历史遗留的规范,容易写错。

AX = 0

初始化鼠标驱动程序。

返回:

AX = FFFFh 表示驱动已安装,BX = 按钮数

AX = 1

显示鼠标指针

AX = 2

隐藏鼠标指针

AX = 3

获取鼠标位置和按钮状态。

返回:BX = 按钮状态(位0=左键,位1=右键,位2=中键),CX = X坐标,DX = Y坐标

AX = 4

设置鼠标位置。

CX = X坐标,DX = Y坐标

AX = 5

获取按钮按下信息。

输入:BX = 按钮号(0=左,1=右,2=中);返回:AX = 按下次数,CX = 最后一次按下时的X坐标,DX = Y坐标

AX = 6

获取按钮释放信息,用法同 AX=5,返回释放次数和最后释放位置

AX = 7

设置水平(X)方向的移动范围。CX = 最小X,DX = 最大X

AX = 8

设置垂直(Y)方向的移动范围。CX = 最小Y,DX = 最大Y

AX = 9

设置自定义图形光标

AX = 0Ch

设置鼠标事件回调函数。CX = 触发事件掩码,ES:DX = 回调函数地址

关于 INT 33h 更完整的用法示例和与 BIOS 中断的层次关系,可参考Turbo C键盘鼠标交互编程详解。